常用的Django模板语言

Django模板语言(Django Template Language, DTL)是Django框架中用于呈现HTML的方式。它具有一套丰富的标签和过滤器,帮助你在模板中动态渲染内容。常用的模板标签和过滤器有很多,以下是一些常见的:

常用模板标签:

  1. 变量输出:

    html 复制代码
    {{ variable }}

    用于输出变量的值。如果变量不存在,则不会显示内容。

  2. 控制结构标签

    • 条件语句ifelifelse):

      html 复制代码
      {% if user.is_authenticated %}
          <p>Welcome, {{ user.username }}!</p>
      {% else %}
          <p>Please log in.</p>
      {% endif %}
    • 循环语句for):

      html 复制代码
      {% for item in item_list %}
          <p>{{ item.name }}</p>
      {% empty %}
          <p>No items available.</p>
      {% endfor %}
    • forloop(循环的特殊变量):

      html 复制代码
      {% for item in item_list %}
          {{ forloop.counter }}. {{ item.name }}
      {% endfor %}
  3. 模板继承

    • extends:用来继承父模板。

      html 复制代码
      {% extends "base.html" %}
    • block:在父模板中定义可修改的内容区域。

      html 复制代码
      {% block content %}
      <p>This is content.</p>
      {% endblock %}
  4. include

    html 复制代码
    {% include 'header.html' %}

    用于包含其他模板文件。

  5. URL反向解析

    html 复制代码
    <a href="{% url 'app_name:view_name' %}">Link</a>

    用于根据URL模式名称生成URL。

常用模板过滤器:

过滤器用于修改模板变量的显示方式。

  1. default

    html 复制代码
    {{ user.name|default:"Anonymous" }}

    如果user.name为空,则显示Anonymous

  2. length

    html 复制代码
    {{ items|length }}

    返回列表或字符串的长度。

  3. date

    html 复制代码
    {{ article.published_at|date:"Y-m-d" }}

    格式化日期时间。

  4. lower/upper

    html 复制代码
    {{ user.username|lower }}

    将字符串转换为小写(upper为大写)。

  5. safe

    html 复制代码
    {{ raw_html|safe }}

    用于标记HTML代码为安全,避免被自动转义。

  6. join

    html 复制代码
    {{ my_list|join:", " }}

    用指定的分隔符将列表连接成字符串。

  7. truncatechars

    html 复制代码
    {{ description|truncatechars:100 }}

    将字符串截断为指定长度(例如100个字符)。

  8. escape

    html 复制代码
    {{ user_input|escape }}

    将特殊字符(如<>等)转义为HTML实体。

常用的其它标签:

  1. comment:用于注释,不会在输出中显示。

    html 复制代码
    {% comment %} This is a comment {% endcomment %}
  2. blocktrans:用于国际化翻译。

    html 复制代码
    {% blocktrans %} Welcome, {{ username }}! {% endblocktrans %}

这些标签和过滤器是Django模板语言的基础,可以帮助你灵活地渲染数据和构建动态网页。

相关推荐
应用市场8 小时前
构建自定义命令行工具 - 打造专属指令体
开发语言·windows·python
东方佑8 小时前
从字符串中提取重复子串的Python算法解析
windows·python·算法
Dfreedom.9 小时前
一文掌握Python四大核心数据结构:变量、结构体、类与枚举
开发语言·数据结构·python·变量·数据类型
一半烟火以谋生9 小时前
Python + Pytest + Allure 自动化测试报告教程
开发语言·python·pytest
码界奇点9 小时前
Django视图从基础到高级的全面解析
数据库·django·sqlite·web·python3.11
叶子丶苏10 小时前
第八节_PySide6基本窗口控件_按钮类控件(QAbstractButton)
python·pyqt
清静诗意11 小时前
Django from_queryset 源码深度解析:动态生成 Manager 的奥秘
django·queryset
百锦再11 小时前
对前后端分离与前后端不分离(通常指服务端渲染)的架构进行全方位的对比分析
java·开发语言·python·架构·eclipse·php·maven
Blossom.11811 小时前
把AI“刻”进玻璃:基于飞秒激光量子缺陷的随机数生成器与边缘安全实战
人工智能·python·单片机·深度学习·神经网络·安全·机器学习
Kratzdisteln12 小时前
【Python OOP Diary 1.1】题目二:简单计算器,改错与优化
python·面向对象编程