1、变量
i.使用:{{变量名称}}
ii.后台传递内容 render(request,’index.html’,{‘变量名称’:value})
iii.点(.)的使用
1.后台传递的是字典类型的数据 {‘usrifno’:{‘name’:’zs’,’age’:18}} {{usrinfo.name}} {{usrinfo.age}}
2.后台传递的是列表类型的数据 {‘hero_lst’:[‘aa’,’bb’,’cc’]} -> {{hero_lst.0}}
3.后台传递列表和字典组合类型 {‘hero_lst’:[{‘name’:’zs’},{‘name’:’ls’}]} {{hero_lst.0.name}}
4.传递对象 {‘person_obj’:person_obj} {{person_obj.eat}} {{person_obj.name}}
注意: 调用对象的方法(方法必须无参数并且有返回值)
2、过滤器(filter)
i.作用:可以改变变量的显示
ii.使用:{{name|lower:’xx’}} --> 冒号(:)左右不能有空格,过滤器也可以串联使用{{name|lower|upper}}
1.default
2.length
3.slice
4.safe --> 表示安全,默认是不安全的,后台帮我们自动转义了。
5.date --> 日期, ‘Y-m-d H:i:s’
6.cut
7.join
…. 大概有60多个过滤器。
3、标签(tag)
i.作用:可以做一些简单的逻辑操作。
ii.使用:{% 标签%}
iii.for 标签
{%for 临时变量 in 变量%} … {%endfor%}
iv.for empty 标签
{%for 临时变量 in 变量 %}
。。。
{%empty%}
。。。
{%endfor%}
如果变量为空或者不存在则执行 empty中的代码。否则执行for 中的代码。
v.if 标签
{%if 表达式%} … {%endif%}
vi.if … else… 标签
{%if 表达式 %}
…
{%else%}
…
{%endif %}
vii.if … elif … elif …. else… 标签
{%if 表达式 %}
…
{%elif 表达式1%}
…
{%elif 表达式2%}
…
{%else%}
…
{%endif %}
viii.load 和 static 标签 加载静态资源(js,css 图片)
使用:
(1)创建static 目录
(2)在settings.py中 注册 : STATICFILES_DIRS=[os.path.join(BASE_DIR,’static’)]
(3)页面上开始使用 : {% load static %}(位置必须在使用static 标签之前)
(4)<img src =’{% static ‘1.jpg’%}’/>
使用load 标签来加载 static 标签, 在settings中进行配置
'builtins': [
'django.templatetags.static'
]
还有很多标签…
模板继承:
1、{%extends ‘ base.html’ %}
2、{%block 名称%} {%endblock%}
模板组件:
{%include ‘foot.html’ %}
4、注释
i.单行注释 {# #}
ii.多行注释 {% comment%} {%end comment%}