模板语法
1.变量
- 变量输出语法
{ { var } }
- 当模版引擎遇到一个变量,将计算这个变量,然后将结果输出
- 变量名必须由字母、数字、下划线(不能以下划线开头)和点组成
- 当模版引擎遇到点("."),会按照下列顺序查询:
- 字典查询,例如:foo["bar"]
- 属性或方法查询,例如:foo.bar
- 数字索引查询,例如:foo[bar]
- 如果变量不存在, 模版系统将插入'' (空字符串)
- 在模板中调用方法时不能传递参数
2.标签
- 语法
{ % tag % }
- 作用
- 在输出中创建文本
- 控制循环或逻辑
- 加载外部信息到模板中
for标签
{ % for ... in ... % }
循环逻辑
{ % endfor % }
if标签
{ % if ... % }
逻辑1
{ % elif ... % }
逻辑2
{ % else % }
逻辑3
{ % endif % }
{ % comment % }
多行注释
{ % endcomment % }
include:加载模板并以标签内的参数渲染
{ % include "base/index.html" % }
url:反向解析
{ % url 'name' p1 p2 % }
csrf_token:这个标签用于跨站请求伪造保护
{ % csrf_token % }
3.过滤器
4.注释
{# 注释 #}
{% comment %}
多行注释
{% endcomment %}
5.模板运算
- 加
{ { value|add:10 } }
note:value=5,则结果返回15
- 减
{ { value|add:-10 } }
note:value=5,则结果返回-5,加一个负数就是减法了
- 乘
{ % widthratio 5 1 100 % }
note:等同于:(5 / 1) * 100 ,结果返回500,
withratio需要三个参数,它会使用参数1/参数2*参数3的方式进行运算,进行乘法运算,使「参数2」=1
- 除
{ % widthratio 5 100 1 % }
note:等同于:(5 / 100) * 1,则结果返回0.05,和乘法一样,使「参数3」= 1就是除法了。
6.自定义 标签 或 过滤器
- 首先在当前应用目录下创建一个
templatetags
模板标签目录,建议内放一个__init__.py
的空文件
- 然后在
templatetags
目录下创建一个模板标签文件pagetag.py
,具体代码如下:
templatetags
├── pagetag.py
----------------pagetag.py-------------------------
from django import template
register = template.Library()
@register.filter
def myupper(val):
return val.upper()
@register.simple_tag
def jian(a,b):
res = int(a) - int(b)
return res
- 使用:在模板文件使用
{ % load pagetag % }
<h4>6. 自定义标签 </h4>
{% load pagetag %}
大写:{{name|myupper}} <br/>
相减:{% jian m1 m2 %}