03-路由控制4——反向解析1——模板中
03-路由控制4——反向解析1——模板中
其实通过‘别名’找到对应路径的过程就是反向解析
实际开发的时候路径是十分关键的这个“别名”可以保证修改路径不用在模板或者视图中进行多次的修改只要别名不修改总能找到对应的路径!
1
在上面的例子中:我们在浏览器中输入http://127.0.0.1:8000/login,程序会在app01的url.py中找到 path('login/', views.login),然后通过views.login函数知道这是一个GET请求,最终找到templates包中的login.html文件。
2
但是我们要注意login.html文件的form表单的action是这么写的:
action="http://127.0.0.1:8000/login/",这里的login与们在浏览器中输入的login是对应的
3
问题来了:如果我们想把(1)中的login改成LOGIN,当然(1)后面的path里的login也得改,但是(2)中action里的login还得改,很烦,我们做下面这样处理:
#在(1)中path里这样做:
path('login/',views.login,name='LOG')
#然后在login.html文件的form表单里不要把action写死:——注意这里的'LOG'要加引号!!!
<form action="{% url 'LOG' %}" method="post">
用户名: <input type="text" name="user" >
密码: <input type="password" name="pwd">
<input type="submit">
</form>
##这样的话只要改变(1)中的两个login就可以了!!!
4
render方法里面的html有{% %}这样的就是反向解析的语法!
5
用到的是模板的语法:
一个是前面的{{ }} ————timer.html中
另外一个是这个{% %} ————login.html中