Django模板语言的语法主要分为2种: {{变量}} 和 {% Tag %} ,{{变量 }}主要用于和视图变量做替换,变量相关的用{{}},逻辑相关的用{%%}。
1. 两个语法:
1. {{ }} --> 跟变量相关的操作
2. {% %} --> 跟逻辑相关的操作
2. 变量相关
1. 传字典或对象类型的数据 obj.name/obj.age
2. 传数组类型的数据 obj.索引值
3. 日期格式化
<p>{{ today|date:"Y-m-d H:i:s"}}</p>
4. 显示真正的html代码
<p>{{ link|safe }}</p>
5. XXS攻击 <script>for(;;){alert(123}</script>
备注:模板语言调用方法的时候不需要加括号。
示例:
# views.py中的代码 def template_test(request): l = [11, 22, 33] d = {"name": "alex"} class Person(object): def __init__(self, name, age): self.name = name self.age = age def dream(self): return "{} is dream...".format(self.name) Alex = Person(name="Alex", age=34) Egon = Person(name="Egon", age=9000) Eva_J = Person(name="Eva_J", age=18) person_list = [Alex, Egon, Eva_J] return render(request, "template_test.html", {"l": l, "d": d, "person_list": person_list}) #模板语言中的写法 {# 取l中的第一个参数 #} {{ l.0 }} {# 取字典中key的值 #} {{ d.name }} {# 取对象的name属性 #} {{ person_list.0.name }} {# .操作只能调用不带参数的方法 #} {{ person_list.0.dream }}
语法: {{ value|filter_name:参数 }}
{#如果value值没传的话就显示nothing#}
{{ value|default: "nothing"}}
{{ value|length }}
{#‘|‘左右没有空格没有空格没有空格#}
{#返回value的长度,如 value=[‘a‘, ‘b‘, ‘c‘, ‘d‘]的话,就显示4.#}
将值格式化为一个 “人类可读的” 文件尺寸 (例如 ‘13 KB‘
, ‘4.1 MB‘
, ‘102 bytes‘
, 等等)。例如:
{#如果 value 是 123456789,输出将会是 117.7 MB。#}
{{ value|filesizeformat }}
{#切片#}
{{value|slice:"2:-1"}}
{#格式化#}
{{ value|date:"Y-m-d H:i:s"}}
原文:https://www.cnblogs.com/xingye-mdd/p/9507854.html