Django 基础教程

Django 查询

Django 展示数据

Django Admin

Django 模板

Django 表单组件

Django 高级

Django FAQ

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/django-template-tags.html

Django 模板标签详解


Django 是一个流行的 Python Web 框架,提供了许多模板标签(template tags),用于在 Django 模板中执行动态操作。这些标签允许你在模板中使用逻辑、循环、变量、条件语句等功能,以便更好地展示数据和渲染页面。

以下是 Django 的常用标签及其用法和作用:

常用标签

循环遍历可迭代对象

{% for %} :用于循环遍历一个可迭代对象(如列表、字典等)中的元素。

{% for item in items %}
    {{ item }}
{% endfor %}

条件判断

{% if %} :用于执行条件判断,根据条件的真假展示不同的内容。

{% if condition %}
    Content when condition is True
{% else %}
    Content when condition is False
{% endif %}

{% else %} :在 {% if %} 标签内使用,表示条件不成立时要执行的内容。

{% elif %} :在 {% if %} 标签内使用,表示额外的条件,如果之前的条件不成立,继续判断该条件。

{% if condition1 %}
    Content when condition1 is True
{% elif condition2 %}
    Content when condition2 is True
{% else %}
    Content when all conditions are False
{% endif %}

生成 url

{% url %} :生成一个 URL,根据给定的视图名称和参数。

<a href="{% url 'app_name:view_name' arg1 arg2 %}">Link</a>

生成 CSRF 令牌

{% csrf_token %} :生成一个 CSRF 令牌,用于保护表单免受跨站请求伪造。

<form method="post">
    {% csrf_token %}
    <!-- form content here -->
</form>

模板中定义变量

{% with %} :在模板中创建一个新的变量,方便在其内部使用。

{% with total=quantity*price %}
    Total: {{ total }}
{% endwith %}

定义可被继承的模板块

{% block %} :定义一个可被继承的模板块,允许在继承模板中覆盖它。

{% block content %}
    Default content
{% endblock %}

继承其他模板

{% extends %} :用于继承其他模板,并在继承模板中使用 {% block %} 标签覆盖其中的内容。

{% extends 'base.html' %}

{% block content %}
    Content to override the base template content
{% endblock %}

包含其他模板文件的内容

{% include %} :用于包含其他模板文件的内容。

{% include 'header.html' %}

获取循环信息

{% forloop %} :在 {% for %} 循环内部使用,提供关于当前循环状态的信息。

{% for item in items %}
    {{ forloop.counter }} - {{ item }}
{% endfor %}

内容应用过滤器

{% filter %} :在输出前对内容应用过滤器。

{{ value|filter_name }}

以上是 Django 中一些常用的模板标签,它们帮助开发者在模板中执行逻辑和控制页面渲染。通过使用这些标签,你可以更加灵活地展示数据和构建交互性强的 Web 页面。

所有标签

以下是所有标签的列表:

autoescape

autoescape:指定自动转义模式是否开启。

block

block:指定块代码。

comment

comment:指定注释区域。

cycle

cycle:指定循环的每个循环中要使用的内容。

extends

extends:指定继承的父类模板。

filter

filter:在返回数据前过滤数据。

for

for:指定循环。

if

for:指定条件语句。

ifchanged

for:检测变量是否变化。

include

include:用于将其他模板文件包含到当前模板。

load

load:允许在模板中嵌入 Python 代码。

lorem

lorem:它不是内置标签,可能是一个自定义的标签或者来自第三方库。

now

now:显示指定日期时间格式数据。

regroup

regroup:用于对数据进行分组,然后在模板中按照分组显示内容。

spaceless

spaceless:用于去除 HTML 渲染过程中产生的空白字符,包括空格、换行符等,以减小 HTML 文件的大小和提高网页加载速度。

url

url:用于生成 URL 的特殊模板标签。

verbatim

verbatim:主要作用是让 Django 模板系统忽略标签中的内容,直接原样输出内容,不进行任何解析。

widthratio

widthratio:用于在模板中执行简单的数学计算,并生成一个比例值。

with

with:用于在 Django 模板中执行特定功能的标记。