在settings.py中有个TEMPLATES的设置,其中BACKEND用来配置Django模板引擎,
DIRS 定义了一个目录列表,模板引擎按列表顺序搜索这些目录以查找模板源文件
一般我们都会把模板文件放到一个叫templates的文件夹,所以一般DIRS的路径设置为:
'DIRS': [os.path.join(BASE_DIR, 'templates')]
当 APP_DIRS 为 True 时, DjangoTemplates 引擎会在已安装应用的 templates 子目录中查找模板文件。
OPTIONS 中包含了具体的backend设置:比如context_processors
其作用是返回一些dict并合并到模板内容中去,比如django.template.context_processors.csrf
它就会返回CSRF token返回一个key值是csrf_token的dict.
Django模板是一个简单的文本文档,或用Django模板语言标记的一个Python字符串。 某些结构是被模板引擎解释和识别的。主要的有变量和标签。
模板是由context来进行渲染的。渲染的过程是用在context中找到的值来替换模板中相应的变量,并执行相关tags。其他的一切都原样输出
Django模板语言:
变量:变量看起来就像是这样: {{ variable }},当模版引擎遇到一个变量,它将计算这个变量,然后用context替换掉它本身
过滤器:过滤器会更改变量或标签参数的值
escape:转义字符串中的HTML,例如:<转换为<>转换为>'(单引号)转换为'
add:把add后的参数加给value 例如:{{ value|add:"2" }}
join: 使用字符串连接列表
标签:标签可以用于在输出中创建文本,可以用于控制循环或者逻辑等
{%for%} {%endfor%}
{%if%} {%elif%} {%else%}
{%extends%} 模板继承
autoescape 控制自动转义是否可用.这种标签带有任何 on 或 off 作为参数的话,他将决定转义块内效果。该标签会以一个endautoescape作为结束标签
csrf_token 这个标签用于跨站请求伪造保护
ifequal:如果给定的两个参数相同,则显示被标签包含的内容,例如:
{% ifequal user.pk comment.user_id %}
...
{% endifequal %}