django模板模块相关问题
1.)Django框架对于模板文件的加载顺序:
首先在setting配置好的位置搜索template文件夹下模板文件
其次在系统注册的应用中的admin下的templates文件夹下搜索模板文件
接着在系统注册的应用中的auth下的templates文件夹下搜索模板文件
最后在自己注册的(且含有templates)应用下templates文件夹下搜索模板文件
2.)模板变量的调用:
这里可以看出模板变量的调用可以是字典,列表,对象三类。
3.)模板标签:
常用的有IF For循环结构
{%if …%}
逻辑1
{%elif …%}
逻辑2
{%else%}
逻辑3
{%endif%}
{%for item in 列表%}
循环逻辑
{{forloop.counter}}表示当前是第几次循环,从1开始
{%empty%}
列表为空或不存在时执行此逻辑
{%endfor%}
4.)过滤器:对于模板变量的显示结果进行x修饰
常用的有date,default,lenth:
{{ book.bpub_date|date:‘Y年-m月-d日’}
{{ book.btitle|length }}
{{ book.btitle }}
5.)自定义过滤器:(自定义的过滤器至少有1个参数,最后又两个参数)
首先在应用文件夹(booktest)下建立python包 名必须为templatetags,创建filters.py
然后 from django.template from Library 创建对象
接着 完成过滤函数后添加@register.filter
最后在模板文件中导入{%load filters%} 使用自定义的过滤器
6.)模板继承:
继承语句: {% extends 父类模板文件位置(‘booktest/base.html’ )%}
7.)模板文件的转义:
通过safe装饰器转义:{{ zhuanyi1|safe }}
通过关键字转义:{% autoescape off%}{{ zhuanyi2 }}{% endautoescape %}
硬编码的需要手动转义:{{data|default:"<b>123</b>"}}
8.)url反向解析
要实现反向解析功能,需要如下步骤:
1)在test4/urls.py中为include定义namespace属性。
url(r’^’,include(‘booktest.urls’,namespace=‘booktest’)),
2)在booktest/urls.py中为url定义name属性,并修改为fan2。
url(r’^fan2/$’, views.fan2,name=‘fan2’),
3)在模板中使用url标签做超链接,此处为templates/booktest/fan1.html文件。
普通链接:fan2
反向解析:fan2