Django 模版中的控制结构和过滤器

2023-04-11 00:00:00 过滤器 结构 模版

Django模板中的控制结构

Django模板中常见的控制结构有if/else、for循环、注释和include语句等。

  1. if/else语句

if/else语句可以在模板中实现条件判断。示例如下:

{% if username == "pidancode" %}
     <p>Welcome, {{ username}}!</p>
  {% else %}
     <p>Hi there, stranger!</p>
  {% endif %}
  1. for循环

for循环可以用来遍历列表、数组和字典等数据结构。示例如下:

{% for i in list %}
     <p>{{ i }}</p>
  {% endfor %}
  1. 注释

注释可以用来在模板中添加注释或忽略某些内容。示例如下:

{# 这是模板中的注释 #}
  {% comment %} 这也是注释 {% endcomment %}
  1. include语句

include语句可以将其他模板包含到当前模板中。示例如下:

{% include "header.html" %}
  {% include "footer.html" %}

Django模板中的过滤器

Django模板还提供了一些内置的过滤器,可以用于处理模板中的变量。常见的过滤器有safe、date、default等。

  1. safe过滤器

safe过滤器可以将模板变量标记为安全的HTML代码,确保它们不会被转义。示例如下:

{{ html_code|safe }}
  1. date过滤器

date过滤器可以将日期格式化为指定的格式。示例如下:

{{ post.created_date|date:"F j, Y" }}
  1. default过滤器

default过滤器可以设置默认值,当变量未定义或为空时使用。示例如下:

{{ variable|default:"no data" }}

代码演示

下面是一个示例代码,使用了if/else语句和default过滤器。

{% if username %}
     <p>Welcome, {{ username }}!</p>
  {% else %}
     <p>Welcome, guest!</p>
  {% endif %}

  {{ description|default:"No description provided." }}

如果username变量有值,则输出欢迎信息,否则输出默认信息“Welcome, guest!”;另外,如果description变量未定义或为空,则输出默认信息“No description provided.”。

相关文章