当前位置: 首页 > article >正文

常用的Django模板语言

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

常用模板标签:

  1. 变量输出:

    {{ variable }}
    

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

  2. 控制结构标签

    • 条件语句ifelifelse):

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

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

      {% for item in item_list %}
          {{ forloop.counter }}. {{ item.name }}
      {% endfor %}
      
  3. 模板继承

    • extends:用来继承父模板。

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

      {% block content %}
      <p>This is content.</p>
      {% endblock %}
      
  4. include

    {% include 'header.html' %}
    

    用于包含其他模板文件。

  5. URL反向解析

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

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

常用模板过滤器:

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

  1. default

    {{ user.name|default:"Anonymous" }}
    

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

  2. length

    {{ items|length }}
    

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

  3. date

    {{ article.published_at|date:"Y-m-d" }}
    

    格式化日期时间。

  4. lower/upper

    {{ user.username|lower }}
    

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

  5. safe

    {{ raw_html|safe }}
    

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

  6. join

    {{ my_list|join:", " }}
    

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

  7. truncatechars

    {{ description|truncatechars:100 }}
    

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

  8. escape

    {{ user_input|escape }}
    

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

常用的其它标签:

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

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

    {% blocktrans %} Welcome, {{ username }}! {% endblocktrans %}
    

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


http://www.kler.cn/a/453136.html

相关文章:

  • 使用FFmpeg进行拉流和推流操作
  • 五、Swagger 介绍(Flask+Flasgger的应用)
  • iClient3D for Cesium 加载shp数据并拉伸为白模
  • 活着就好20241226
  • 秒鲨后端之MyBatis【2】默认的类型别名、MyBatis的增删改查、idea中设置文件的配置模板、MyBatis获取参数值的两种方式、特殊SQL的执行
  • 【Leetcode】1705. 吃苹果的最大数目
  • 437 路径总和III
  • 接口调用限频(代理模式+滑动窗口)
  • Electron【详解】菜单 Menu
  • tokenizer、tokenizer.encode、tokenizer.encode_plus比较
  • 打造两轮差速机器人fishbot:从零开始构建移动机器人
  • 前端开发 -- 自动回复机器人【附完整源码】
  • 如何检查交叉编译器gcc工具链里是否有某个库(以zlib库和libpng库为例)
  • 修炼之道 ---其四
  • 3.系统学习-熵与决策树
  • 福特汽车物流仓储系统WMS:开源了,可直接下载
  • CentOS下安装RabbitMQ
  • HNUST-数据分析技术课堂实验
  • 软件渗透测试如何做?渗透测试作用有哪些?
  • flask后端开发(4):模板访问对象属性和过滤器的使用
  • 短视频运营行业该如何选择服务器?
  • 使用FFmpeg进行拉流和推流操作
  • 运行Zr.Admin项目(后端)
  • 使用React Strict DOM改善React生态系统
  • 使用openvino加速部署paddleocr文本方向分类模型(C++版)
  • 质数分解,用sqrt缩小范围