本篇文章给大家带来的内容是关于Django模板语言的详细介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
常用语法
{{ }}和{% %}
变量相关的用{{}} , 逻辑相关的用{% %}
变量
在Django的模板语言中按此语法使用:{{ 变量名 }}。
当模版引擎遇到一个变量,它将计算这个变量,然后用结果替换掉它本身。
变量的命名包括任何字母数字以及下划线 ("_")的组合(不提倡数字开头)。
变量名称中不能有空格或标点符号。
点(.)在模板语言中有特殊的含义。
当模版系统遇到点("."),它将以这样的顺序查询:
字典查询(Dictionary lookup)
属性或方法查询(Attribute or method lookup)
数字索引查询(Numeric index lookup)
注意:
1、若是在查询时,有相同的名称的属性或者方法,则按照上述顺序,优先查询.
2. 如果计算结果的值是可调用的(传参数),他将被无参数的调用(不加括号).调用的结果将成为模板的值.
3. 如果 使用的变量不存在,模板系统将插入 string_if_invalid 选项的值,他被默认设置为 "" (空字符串).
views中代码:
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 "<b style="color:transparent">来&源gao@dai!ma.com搞$代^码%网</b>;{} 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 }}
Filters(过滤器) :
在Django的模板语言中,通过使用 过滤器 来改变变量的显示。
过滤器的语法: {{ value|filter_name:参数 }}
使用管道符"|"来应用过滤器。
例如:{{ name|lower }}会将name变量应用lower过滤器之后再显示它的值。lower在这里的作用是将文本全都变成小写。
注意事项:
1、过滤器支持“链式”操作。即一个过滤器的输出作为另一个过滤器的输入。
2、过滤器可以接受参数,例如:{{ sss|truncatewords:30 }},这将显示sss的前30个词。(参数只能是一个或者没有)
3、过滤器参数包含空格的话,必须用引号包裹起来。比如使用逗号和空格去连接一个列表中的元素,如:{{ list|join:', ' }}
4、'|'和':' 左右没有空格。
Django模板语言中提供了约60个内置过滤器
default
如果一个变量是false或者为空,使用给定的默认值,否则,使用变量的值.
{{ value|default:'nothing'}}
注意:
TEMPLATES的OPTIONS可以增加一个选项: string_if_invalid: '找不到', 若value值没有上传,无效的可以替代default的作用