Django模板系统
常用语法
Django模板中只需要记中特殊符号:
{{}} 和 {% %}
{{}} 表示变量, 在模板渲染的时候替换成值, {% %} 表示逻辑相关的操作.
变量
{{ 变量名 }} : 变量名由字母数字下划线组成.
点( . ) 在模板语言中有特殊含义. 用来获取对象的相应属性值.
几个例子:
view中代码:
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})
模板中支持的写法:
# 取1中的第一个参数 (都是从上述代码中取) {{ 1.0 }} # 取idian中key的值 {{ d.name }} # 取对象的name属性 {{ person_list.0.name }} # .操作只能调用不带参数的方法 {{ presson_list.0.dream }}
注意: 当模板系统遇到一个( . ) 时, 会按照如下顺序去查询:
1, 在字典中查询.
2, 属性或者方法.
3, 数字索引
Filters
翻译为过滤器, 用来修改变量的显示结果.
语法: {{ value|filter_name:参数 }}
"|" 左右不能有空格
default
{{ value|default:"nothing" }}
如果value值没传的话就显示nothing
注意: TEMPLATES的OPTIONS可以增加一个选项: string_if_invalid: "找不到", 可以替代default的作用
filesizeformat(将数字转换成人类可读的文件大小)
将值格式化为一个"人类可读的"文件大小
例子:
views(视图)中的代码
file_size = 1234567
HTML中的代码
<p>文件大小:{{ fize_size|filesizeformat }}</p>
运行项目后, 得到的结果就是一个"人类可读"的文件大小.