3-5Django url temeplate配置

一.将后台的数据呈现到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">

猜你喜欢

转载自blog.csdn.net/qq_43298183/article/details/84726499