4.继续复习templates文件的配置

2018-01-10  本文已影响0人  hs_a2d1

刚才知道了如何把前端获取的信息存储到数据库,现在来看如何把数据库信息写到前端。在views.py里:

from django.shortcuts import render
from .models import UserMessage #.的意思是与本文件同一目录
# Create your views here.
def getform(request):
    message = None
    all_messages = UserMessage.objects.filter(name='bobby')
    if all_messages:
        message = all_messages[0]

    return render(request, 'message_form.html',{"my_message":message})

render 函数第三个参数{"my_message":message}即是向html文件传递数据的关键。再看message_form.html:

<!<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <link rel="stylesheet" href="/static/css/style.css">
</head>
<body>
<form action="/form/" method="post" class="smart-green">
    <h1>留言信息
        <span>请留下你的信息.</span>
    </h1>
    <label>
        <span>姓名 :</span>
        <input id="name" type="text" value="{{ my_message.name}}" name="name" value="{}" class="error" placeholder="请输入您的姓名"/>
        <div class="error-msg"></div>
    </label>

    <label>
        <span>邮箱 :</span>
        <input id="email" type="email" value="{{ my_message.email}}" name="email" placeholder="请输入邮箱地址"/>
        <div class="error-msg"></div>
    </label>

    <label>
        <span>联系地址 :</span>
        <input id="address" type="text" value="{{ my_message.address}}" name="address" placeholder="请输入联系地址"/>
        <div class="error-msg"></div>
    </label>

    <label>
        <span>留言 :</span>
        <textarea id="message" name="message"  placeholder="请输入你的建议"></textarea>
        <div class="error-msg"></div>
    </label>
    <div class="success-msg"></div>
    <label>
        <span>&nbsp;</span>
        <input type="submit" class="button" value="提交"/>
    </label>
    <input type='hidden' name='csrfmiddlewaretoken' value='SfHkbL4feo1G00sJQtbO7TtLN4c2BUwa' />
    {% csrf_token %}
</form>

</body>
</html>

几个<input后边我都加上了value="{{ my_message.address}}" name="address"这样的参数。从响应函数可以看出my_message是models的实例,即数据库的一行,my_message.address即为adress字段。这样就行了。

value="{% if my_message.name = 'bobby' %}{{ my_message.address}}{%else %}not bobby{% endif %}"

这是django模板的if-else语句写法。再比如说<form action="/form/"这里,如果在url函数的第三个参数写:name='go_form'

from django.conf.urls import url
from django.contrib import admin
from message.views import getform

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^form/', getform,name='go_form'),
]

则html文件可写为form action="{%url go_form%}"
其他写法见官方文档。

上一篇 下一篇

猜你喜欢

热点阅读