4、django 模板
一、定义模板
url 反向解析
# 项目下的url配置
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^booktest/',include('booktest.urls',namespace='booktest'))
]
# 应用下的url配置
urlpatterns = [
url(r'^$',views.index,name="index"),
url(r'^(\d+)/(\d+)$',views.show,name="show") # 加了()表示要取了浏览器里的参数
]
# 视图函数
def index(request):
context = {'list':"a b c"}
return render(request,'booktest/index.html',context)
def show(request,id+id2):
context = {'id':id+id2}
return render(request,'booktest/show.html',context)
# index.html
<a href="{% url 'booktest:show' 123 456 %}"> url</a>
###### {% '项目下urls中的namespace:应用下urls中的name' 需要传递的参数 %}
# show.html
{{id}}
url反向解析的作用:
动态生成url,减少维护工作量。
当我们修改项目下的url路由配置的时候,只要namespace和name不变,html中定义的路由规则则不用修改。
二、模板继承
三、HTML转义
四、CSRF
# urls.py配置
urlpatterns = [
url(r'^csrf',views.csrf1),
]
# views.py
def csrf1(request):
return render(request,'booktest/csrf.html')
def csrf2(request):
uname = request.POST['uname']
return HttpResponse(uname)
# crsf.html
<form action="csrf2" method="post" >
{% csrf_token %}
<input type="text" name="uname"><input type="submit" name="提交">
</form>
五、验证码

浙公网安备 33010602011771号