一.将后台的数据呈现到HTML页面中:
1.在views.py下代码如下:(取出后台数据)
return render(request,"message_form.html",{"my_message":message})把取出的值传入到message_from.html中。
# _*_ coding:utf-8 _*_
from django.shortcuts import render
# Create your views here.
from models import Usermessage
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
})
2.在message_from.html下:value是input的一个参数,value="{{ }}"取得是render里面{"my_message":message}的值,
为了在HTML页面下呈现后台数据,主要是在input下添加如下代码: value="{{ my_message.name }}"
#在input和textarea下的完整代码如下:
<label>
<span>姓名 :</span>
<input id="name" type="text" name="name" value="{{ my_message.name }}" 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="请输入你的建议">{{ my_message.message }}</textarea>
<div class="error-msg"></div>
</label>
要注意的是:在textarea 下,要把value="{{ mymessage.message }}"放在如下代码中的位置:
<textarea id="message" name="message" placeholder="请输入你的建议">{{ my_message.message }}</textarea>
完成这两步后,HTML页面会呈现如图:
二、temeplaes中if的用法
1.代码如下:(注意"=="两边要留出一个空格)if和endif要成对出现。
value="{% if my_message.address == '北京' %}北京{% endif %}
改写代码后HTML页面为:
2.其他if用法:
#value="{% if my_message.address == '北京' %}北京{ else }上海{% endif %}
#value="{% ifequal my_message.address '北京' %}北京{% endifequal %}
3.
<input id="name" type="text" name="name" value="{% ifequal my_message.name|slice:'4' 'bobby' %}bobbyhastest{% else %}bobby not test{% endifequal %}" class="error" placeholder="请输入您的姓名"/>
如果代码为上,HTML页面为:
|slice:' '是Django中函数的调用。
三、URL的配置技巧:(url是有名字的:)
url(r'^form/$', getform,name='go_form')
在form后加/和&符号的情况是在你知道具体地址时,如果不加/和$,则表示寻找以form开头的网页。
URL有名字的好处是不管r'^form/$'里面地址如何变化,后面就不用改URL的引用,因为在message_form.html中引用的是url别名,而不是配置了URL本身。
在message_form.html下改代码为:开始为(action="/form/")
<form action="{% url 'go_form' %}" method="post" class="smart-green">