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