模版是纯文本文件。它可以产生任何基于文本的的格式(HTML,XML,CSV等等)。
模版包括在使用时会被值替换掉的 变量,和控制模版逻辑的 标签。
下面是一个小模版,它说明了一些基本的元素。后面的文档中会解释每个元素。
{% extends "base_generic.html" %}
{% block title %}{{ section.title }}{% endblock %}
{% block content %}
{{ section.title }}
{% for story in story_list %}
{{ story.tease|truncatewords:"100" }}
{% endfor %}
{% endblock %}
变量看起来就像是这样: {{ variable }}. 当模版引擎遇到一个变量,它将计算这个变量,
然后用结果替换掉它本身。变量的命名包括任何字母数字以及下划线 ("_")的组合。点(".")
也在会变量部分中出现,不过它有特殊的含义,你不能在变量名称中使用空格和标点符号。
使用点 (.) 来访问变量的属性。
从技术上来说,当模版系统遇到点,它将以这样的顺序查询:
字典查询(Dictionary lookup)
属性或方法查询(Attribute or method lookup)
数字索引查询(Numeric index lookup)
如果计算结果的值是可调用的,它将被无参数的调用。调用的结果将成为模版的值。
{{ name|lower }}该过滤器将文本转换成小写。
{{ text|escape|linebreaks }} 就是一个常用的过滤器链,它编码文本内容,然后把行打破转成
标签。
{{ bio|truncatewords:30 }}。这将显示 bio 变量的前30个词
过滤器参数包含空格的话,必须被引号包起来;例如,连接一个有逗号和空格的列表,你需要使用 {{ list|join:", " }}。
常见的模板过滤器:
default
如果一个变量是false或者为空,使用给定的默认值。否则,使用变量的值。例如:
{{ value|default:"nothing" }}
如果 value没有被提供,或者为空, 上面的例子将显示“nothing”。
length
返回值的长度。它对字符串和列表都起作用。例如:
{{ value|length }}
如果 value 是 ['a', 'b', 'c', 'd'],那么输出是 4。
filesizeformat
将值格式化为一个 “人类可读的” 文件尺寸 (例如 '13 KB', '4.1 MB', '102 bytes', 等等)。例如:
{{ value|filesizeformat }}
如果 value 是 123456789,输出将会是 117.7 MB。
注释
要注释模版中一行的部分内容,使用注释语法 {# #}.