Django 笔记 - 特殊操作符 2

前一篇博文介绍了 Django 中单独符号构成的常用特殊操作符,这篇博文接着介绍 Django 中组合符号构成的特殊操作符,即 {{ }}  和 {% %}。这两个组合符号构成的特殊操作符都用于 Django template,常用于 HTML 模板文件。下面分别介绍这两种特殊操作符:

{{ value }}  

{{ value }} 可以在模板中显示 Python 代码传递变量 value 的值。使用 {{ value|filter }}  语法,用 filter 函数对 value 值进行处理后,然后才在 HTML 模板中展示最终的结果。

例如,{{ messges|length }} 在 HTTP template 中显示字符串或列表 messages 的长度;下面的例子中,message为一条消息信息实例,tags 是 message 属性,{{}}  除了可以单独使用,还可以在字符串中组合使用。

<div class="alert alert-{{message.tags}}">
    {{message}}
</div>

 

{% tag argment %}

采用 {% tag argment %} 语法,可以在 HTML template 中,使用 tag 和参数 argument 展示块数据、逻辑判断、循环迭代列表等。常用的 tag 有 extends、content、if、for 和 url。更多 tag 内容参见 Built-in tag reference - Django Documentation

具体实例,如下:

{% extends base.html %}

{% if messages %}
    {% for message in messages %}
        <div class="alert alert-{{message}}">
            {{message}}
        </div>
    {% endfor %}
{% endif %}
{% block content %}
<a href="{% url 'home' %}">Todo</a> {% endblock content %}

其中,extends tag 用于扩展 base.html,与类的继承机制类似;if tag 用于逻辑判断;for tag 用于循环迭代;url tag 用于获得视图名为 'home' 的 URL 地址;

 

补充 1(更新于2024年7月5日)

{# single-line comments #} 

在 Django template 中,采用 {# single-line comments #}  语法,可以注释单独一行内容,注释掉的内容既可以是一行普通的字符串,也可以是任意一行 template 代码。更多内容参见 Comments - The Django template language

具体实例,如下:

{# Hello World #}
{# {% if message %} {{message}} {% else %} #}

 注意,这种语法只能用于单行内容的注释,即 {# 和 #} 分隔符之间不允许有 newlines。若希望注释多行 template 内容,参见 comment tag - Django documentation

Django template tags 汇总表

template tag meaning
{% open block
%} close block
{{ open variable
}} close variable
{ open brace
} close brace
{# open comment
#} close comment

 

 

参考资料

[1] Built-in template tags and filters. https://docs.djangoproject.com/en/5.0/ref/templates/builtins/

[2] Django Todo App. https://www.pythontutorial.net/django-tutorial/django-todo-app/ 

posted @ 2024-05-31 22:29  klchang  阅读(16)  评论(0编辑  收藏  举报