1.模板变量:变量名必须由字母、数字、下划线组成,使用方法:{{变量}}}
2.当模板引擎遇到点时如:book.title,会按照下列顺序解析:
1)字典book['title']
2)先属性后方法,将book作为对象,查找属性title,如果没有在查找方法
3)如果是格式book.0则解析为列表book[0]
3.标签:{%代码段%}
比较运算符左右两侧不能紧挨变量或常量,必须有空格。
4.过滤器:变量|过滤器:参数
5.自定义过滤器:
1)导入Library类:from django.template import Library
2)创建一个Library对象:register = Library()
3)使用装饰器进行注册:@register.filter
def mod(value,num):
return value%num==0
4)在模板中使用自定义过滤器:{%loads filters%}
5)单行注释:{##} 多行注释:{%comment%}{%endcomment%}
6.模板继承:父模板:{%block 名称%}预留区域{%endblock 名称%}
子模板:第一行写{%extends “父模板路径”%}
{%block 名称%}实际填充内容{{block.super}}{%endblock 名称%}
7.HTML转义:
关闭转义:{{data|safe}}
{%autoescape off%}代码段{%endautoescape%}
8.csrf保护:1)开启csrf中间件
2)在form表单中post提交时加入标签csrf_token
9.反向解析:1)在项目的urls中配置namespace=‘’
2)在应用下的urls中配置name=‘’
10.带有位置参数的反向解析:
1)在模板中:{%url 'namespace:name' a b%}
2)在视图中reverse(‘namespace:name’,args=(a,b))
11.带有关键字参数的反向解析:
1)在模板中:{%url ‘namespace:name’ id= age= %}
2)在视图函数中:reverse(‘namespace:name’,kwargs={id= ,age=})