模板具有一定的格式和骨架,可以动态地生成HTML。
BACKEND:模板引擎
DIRS:模板引擎按列表顺序搜索这些目录以查找模板源文件
APP_DIRS:决定模板引擎是否应该进入每个已安装的应用中查找模板
(每种模板引擎都定义了惯用名作为应用内部存放模板的目录名)
DTL - templates目录
Jinja2 - jinja2目录
寻找模板:按配置顺序查找,先根目录后模块目录。
{{ variable }}
当模板引擎遇到一个变量,它将计算这个变量,然后用结果替换。
注意:变量名称中不能有空格或标点符号,不能以"_"开头。
{{ object.attribute }}
dict,list/tuple,list/tuple嵌套dict复杂类型数据
{{ object["variable "] }} ,{{ “a.b” }},{{ “a b” }}不被支持!Jinja2却支持。
如果data_list中没有内容则显示empty中的内容,有内容则正常显示。
url_name : 路由名(path(‘name’))
STATIC_ROOT 是在部署静态文件时所有的静态文静聚合的目录,django会把所有的static文件都复制到STATIC_ROOT文件夹下
STATICFILES_DIRS 首先到STATICFILES_DIRS里面寻找静态文件,其次再到各个app的static文件夹里面找(注意, django查找静态文件是惰性查找,查找到第一个,就停止查找了)
STATIC_URL 利用STATIC_URL来让浏览器可以直接访问静态文件
DTL:{% url ‘url_name’ params %}
Jinja2:{{ url_for(‘url’) }}
{% now “jS F Y H:i” %}
详情见官方文档
https://docs.djangoproject.com/zh-hans/3.0/ref/templates/builtins/#std:templatefilter-date
{{ value|filter_name:params }}
{{ value|default:"" }},{{ value|default_if_none:"" }}
{{ value|floatformat:3 }} 保留3为小数
{{ value|date:“D d M Y” }}
{{ value|time:“H:i” }}
详情见官方文档
https://docs.djangoproject.com/zh-hans/3.0/ref/templates/builtins/#std:templatefilter-date
{{ value|safe }}
{{ value|truncatechars:9 }}
{{ value|truncatechars_html:9 }}
DTL:{{ value|filter_name:params }}
Jinja2:{{ value|filter_name(params) }}
在某个模块下新建一个包templatetags
poll_extras.py:过滤器内容
register.filter(‘filter_name’, function)
@register.filter(name=‘filter_name’)
如果过滤器有参数,则使用过滤器时需要传递参数,
{{ value|filter_name:parms }}