Django中的模板是用来渲染HTML页面的工具。
基本特点:
在工程中创建模板目录,接着在配置文件中修改配置项的值,指定模板目录位置。
在目录中新建一个模板文件,如。在模板中,使用语法访问变量。
通过(模板文件在模板目录中的相对路径) 找到返回模板对象
使用进行渲染模板,然后返回渲染后的值
或者使用Django提供的render函数简写,
在URLconf中定义一个URL模式,将URL映射到视图函数
访问URL,即可看到渲染的模板页面 
Django的模板语法是一种简单且易于学习的语言,它使用一些特殊的标记和标签来创建动态HTML页面。
在模板中使用双花括号来访问变量。当模板渲染时,它会将变量替换为其对应的值。
变量名必须由字母、数字、下划线(不能以下划线开头)和点组成。
注释内容不会显示在最终生成的HTML中。注释可用于在模板中添加说明或注释。
单行注释
多行注释使用comment标签
for循环用于在模板中迭代数据,并将数据渲染到模板中。for循环使用{% %}括起来并包含一个嵌套的{{ }}变量。
if语句用于在模板中测试条件,并根据条件显示特定内容。if语句使用{% %}括起来。
运算符左右两侧不能紧挨变量或常量,必须有空格。 1.比较运算符
2.布尔运算符
过滤器用于修改变量的值,以便在渲染时呈现。它们以管道符号分隔,并作为变量的后缀。
过滤器用于进行计算、转换操作,可以使用在变量、标签中。如果过滤器需要参数,则使用冒号传递参数。
模板语法:
基本使用:
显示大写的 my_var 值
过滤管道可以被套接 ,即:一个过滤器管道的输出又可以作为下一个管道的输入
将第一个元素并将其转化为大写
有些过滤器有参数。 过滤器的参数跟随冒号之后并且总是以双引号包含
显示变量my_var的前30个词
其他过滤器:
lower : 大写转换小写
upper : 小写转换大写
title : 可以将字符串中首字母大写
safe : 禁用转义,告诉模板这个变量是安全的,可以解释执行
length : 长度,返回字符串包含字符的个数,或列表、元组、字典的元素个数。
default : 默认值,可以为变量指定一个默认值,以便在变量未定义时显示。
date : 日期,可以将日期对象解析为时间格式。可以设置各种格式, 常用的格式化字符如下:
slice : 使用 slice 过滤器可以获取序列(列表,元组等)的一个子序列
join : 使用 join 过滤器可以将列表中的每个元素连接成一个字符串。
继承和区块用于在不同的模板之间共享代码和结构。基本的继承语法使用{% extends %},而区块语法使用{% block %}和{% endblock %}。
父模板
如果发现在多个模板中某些内容相同,那么这些内容就可以定义到父模板中。
使用标签block进行定义,用于在父模板中预留区域,留给子模板填充差异性的内容。 为了可读性,建议给endblock标签写上名字,名字不能相同。父模板中也可以使用上下文中传递过来的数据。
子模板
子模板使用标签extends,写在子模板文件的第一行。子模版不用填充父模版中的所有预留区域,如果子模版没有填充,则使用父模版定义的默认值。
Jinja2是一个基于Python的、功能强大的Web模板引擎,其提供了许多有用的功能,如继承、条件渲染、迭代、宏、自动转义以及过滤器等。
django默认模板引擎功能不齐全,速度慢,jinja2宣称比django默认模板引擎快10-20倍。Django也支持jinja2。
在项目中创建 jinja2_env.py模板引擎环境配置文件
在settings.py文件中配置Jinja2模板引擎,接着指定Jinja2模板引擎环境
定义一个视图
Jinja2模板的模板语法与Django自带的模板使用语法类似。

Jinja2提供了大量的过滤器来处理和转换模板变量
safe过滤器可以标记内容是安全的,即内容不应被转义或修改。
capitalize过滤器可以将文本的第一个字符大写。
lower过滤器可以将文本全部转换为小写。
upper过滤器可以将文本全部转换为大写。
title过滤器可以将单词的首字母转换为大写,而其他字符转换为小写。
truncate过滤器可以将文本截断为指定长度,并在末尾添加省略号。
escape过滤器可以实现HTML、XML和URL的转义。
join过滤器可以将列表中的元素连接起来。
default过滤器可以在值为空或不存在时提供一个默认值,避免出现模板错误。
dictsort过滤器可以按字典顺序排序列表中的字典,也可以反转顺序。
Jinja2提供了一些内建的过滤器,同时也可以自定义过滤器
在jinja2_env.py文件中自定义过滤器
注释使用django原模板的admin应用及路由,否则将出现如下异常:
使用过滤器

版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/962.html