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>

 

 

五、验证码

 

posted @ 2020-03-16 22:32  Mr-Lee-long  阅读(184)  评论(0编辑  收藏  举报