一、常用标签
模板标签:标签在渲染的过程中提供任意的逻辑
标签语法:由{% %} 来定义,例如:{%tag%} {%endtag%}
模板标签的例子:
1. if
{% if name == 'python' %}
这个是python的页面
{% elif name == 'dhango' %}
这是django的页面
{% else %}
哈哈哈 是{{ name }}的呢
{% endif %}
2. for
{% for i in ls %} {% if forloop.counter == 1 %} <li>这个是第一个值{{ i }}</li> {% else %} <li>{{ i }}</li> {% endif %} {% endfor %}
3. url页面转换的例子
path(‘index5/’, views.index_5), path('article_new/', views.article_new, name='new_article'), path('test/<int:t_id>/', views.test, name='test')
<a href="/book/index5/">到过滤器那个页面</a><br> <a href="{% url 'new_article' %}">新的文章的</a><br> <a href="{% url 'test' 123 %}">url加参数传递</a>
4. with
{% with test_name as tn %} 11111{{ tn }} <br> 22222{{ tn }} {% endwith %}
5. autoescape
原始的: {{ html }} <br> 过滤器方式: {{ html |safe }}<br> 标签方式: {% autoescape off %} {{ html }} <br> {% endautoescape %}
6. 注释标签
{#注释标签,单行注释#}
{% comment %}
被注释的内容
多行注释
{% endcoment %}
二、模板的继承与引用
Django模版引擎中最强大也是最复杂的部分就是模版继承。模版继承可以让你创建一个基本的“骨架”模版,它包含你站点中的全部元素,并且可以定义能够被子模版覆盖的blocks。
模板基础的例子
1. 创建是哪个模板文件,base.html 模板继承页, indexxx.html 在这个模板中实现继承和引用, ss.html 模板的引用页
2. base.html的内容
2. ss.html的内容
3. indexxx.html的内容
总结:
模板继承使用extends标签实现。通过使用block来给子模板开放接口。
1. extengs必须是模板中的第一个出现的标签
2. 子模板中的所有内容,必须出现在父模板定义好的block中,否则django将不会渲染
3. 如果出现重复代码,就应该考虑使用模板
4. 尽肯能多的定义block,方便子模板实现更细的需求
5. 如果在某个block中,要使用父模板的内容,使用blcok.super获取。