作为Web 框架,Django 需要一种很便利的方法以动态地生成HTML。最常见的做法是使用模板。
模板包含所需HTML 输出的静态部分,以及一些特殊的语法,描述如何将动态内容插入。
模板引擎使用该TEMPLATES设置进行配置。这是一个配置列表,每个引擎一个。默认值为空。在
settings.py由所产生的startproject命令定义一个更有用的值:
在做下面模板配置的同时,也要在项目的根目录下创建一个 templates 目录
# 项目目录下的settings.py配置文件添加TEMPLATES中的DIRS配置
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
# 设置模板路径
'DIRS': [os.path.join(BASE_DIR,'templates')],
# ........省略部分代码
},
]
变量输出语法
{ { varname }}
当模版引擎遇到一个变量,将计算这个变量,然后将结果输出
标签语法:
{% tag %}
标签格式 标签含义
{% for item in books %} {% enfor %} for循环
{% if 判断条件%} {% else %} {% endif %} if判断
{% comment %} {% endcomment %} 多行评论标签
{% include “base/index.html” %} 加载模板并以标签内的参数渲染
{% url ‘index’ %} 反向解析
{% csrf_token %} 跨站请求伪造保护标签
通过使用过滤器来改变变量的计算结果。
过滤器语法:
{ { 变量名 | 过滤器1 | 过滤器2 | 过滤器3 }}
常见的过滤器:
详细的过滤器请参考Django官方网站过滤器名称 过滤器含义 示例 upper
以大写方式输出 { { user.name | upper }} add
给value加上一个数值 { { user.age | add:“5” }} capfirst
第一个字母大写 { { user.name | capfirst }} center
变量居中在指定长度的字符串中 { { user.name | center:“50” }} cut
切除字符 { { “hello
python”|cut:“hello” }} date 根据给定格式对一个日期变量进行格式化。 { {
value|date:“D d M Y” }} default 为变量提供一个默认值。 { {
value|default:“nothing” }} safe 关闭HTML自动转义 { {
“hello” | safe }} length 获取字符串长度 if
list1|length > 1
首先在当前应用目录下创建一个 templatetags 模板标签目录,建议内放一个 init.py 的空
文件然后在 templatetags 目录下创建一个模板标签文件 pagetag.py ,具体代码如下:
templatetags
├── pagetag.py
--------