标签

  • 标签语法:
{% 代码段 %}

常用标签

  • for循环标签
{% for item in 列表 %}
执行循环逻辑
{{ forloop.counter }}获取当前是第几次循环,从1开始
{% empty %}
列表为空或不存在时执行此逻辑
{% endfor %}
  • if标签
{% if ... %}
逻辑1
{% elif ... %}
逻辑2
{% else %}
逻辑3
{% endif %}
  • 比较运算符标签

    • 注意:运算符左右两侧不能紧挨变量或常量
    • 运算符左右两侧必须有空格

      ==
      !=
      <
      >
      <=
      >=
      
  • 布尔运算符标签

      and
      or
      not
    
  • 点击查看更多内建标签

标签演练

  • 需求

以下为需求实现步骤

  • 正则匹配urls

      # 标签
      url(r'^tags/$', views.tags),
    
  • 视图

      # 标签
      def tags(request):
          # 获取数据库书籍列表信息
          bookInfos = BookInfo.objects.all()
          # 构造上下文
          context = {'booklist':bookInfos}
          return render(request, 'Book/tags.html', context)
    
  • 模板
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>标签</title>
</head>
<body>

<ul>
    {% for book in booklist %}
        {% if book.id <= 2 %}
            <li style="background: red">{{ book.name }}</li>
        {% elif book.id == 3 %}
            <li style="background: green">{{ book.name }}</li>
        {% else %}
            <li style="background: blue">{{ book.name }}</li>
        {% endif %}
    {% endfor %}
</ul>

</body>
</html>