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 模板中执行特定功能的标记。