Django基础之模板
一,语法
关于模板渲染你只需要记两种特殊符号(语法):
{{ }}和 {% %}
变量相关的用{{}},逻辑相关的用{%%}。
二.变量
1,定义及注意事项类
在Django的模板语言中按此语法使用:{{ 变量名 }}。
当模版引擎遇到一个变量,它将计算这个变量,然后用结果替换掉它本身。 变量的命名包括任何字母数字以及下划线 ("_")的组合。 变量名称中不能有空格或标点符号。
深度查询据点符(.)在模板语言中有特殊的含义。当模版系统遇到点("."),它将以这样的顺序查询:
字典查询(Dictionary lookup)
属性或方法查询(Attribute or method lookup)
数字索引查询(Numeric index lookup)
注意事项:
-
如果计算结果的值是可调用的,它将被无参数的调用。 调用的结果将成为模版的值。
-
如果使用的变量不存在, 模版系统将插入 string_if_invalid 选项的值, 它被默认设置为'' (空字符串) 。
2.实例
views视图:
name='大白'
s='ss2sassqsws'
num=1024*1024*1024
dic={'zhao':['five','人渣'],'peng':['小鸟依人']}
t=datetime.datetime(1996,5,4,11,11,11)
return render(request,'moban.html',{'name':name,'s':s,'dic':dic,'t':t,'num':num})
HTML写法:
<p>{{ name }}</p> #用name值替换name
<p>{{ s }}</p> #s值替换s
<p>{{ dic.zhao }}</p> #dic的zhao键对应的值 替换 dic.zhao
<p>{{ t.month }}</p> #t的month对应的值 替换 t.month
<p>{{ t|date:'Y-m-d H:i:s'}}</p>
<p>{{ s|default:'大强' }}</p>
<p>{{ s|length }}</p>
<p>{{ num|filesizeformat }}</p>
<p>{{ s|slice:'2:5' }}</p>
<p>{{ s|upper }}</p>
<p>{{ s|safe }}</p>
三.过滤器
1,定义以及注意事项
过滤器的语法: {{ value|filter_name:参数 }} 使用管道符"|"来应用过滤器。
注意事项:
-
过滤器支持“链式”操作。即一个过滤器的输出作为另一个过滤器的输入。
-
过滤器可以接受参数,例如:{{ sss|truncatewords:30 }},这将显示sss的前30个词。
-
过滤器参数包含空格的话,必须用引号包裹起来。比如使用逗号和空格去连接一个列表中的元素,如:{{ list|join:', ' }}
-
'|'左右没有空格没有空格没有空格
2.具体用法
<p>{{ t|date:'Y-m-d H:i:s'}}</p> #对获取的时间格式进行改变
<p>{{ s|default:'大强' }}</p> #如果变量未赋值,就用默认
<p>{{ s|length }}</p> #测量内容长度
<p>{{ num|filesizeformat }}</p> #内容值格式化
<p>{{ s|slice:'2:5' }}</p> #对内容切片,从索引2到5,不包括5
<p>{{ s|upper }}</p> #对内容进行大写处理
<p>{{ s|safe }}</p> #保护内容拿权
default 如果一个变量是false或者为空,使用给定的默认值。 否则,使用变量的值。
length返回值的长度,作用于字符串和列表。
filesizeformat将值格式化为一个 “人类可读的” 文件尺寸 (例如 '13 KB', '4.1 MB', '102 bytes', 等等)
slice切片,如果 value="hello world",还有其他可切片的数据类型
date格式化,如果 value=datetime.datetime.now()
safe 要我说就是保护数据安全


浙公网安备 33010602011771号