1104. 模版标签

发布时间 2023-05-22 09:52:25作者: 興華

一、常用标签

模板标签:标签在渲染的过程中提供任意的逻辑

标签语法:由{% %} 来定义,例如:{%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获取。