Django模板语言-Tags

Tags

  1. Tags

    # 普通for循环
    
    <ul>
    {% for user in user_list %}
        <li>{{ user.name }}</li>
    {% endfor %}
    </ul>

    for循环可用的一些参数:

    Variable Description
    forloop.counter 当前循环的索引值(从1开始)
    forloop.counter0 当前循环的索引值(从0开始)
    forloop.revcounter 当前循环的倒序索引值(从1开始)
    forloop.revcounter0 当前循环的倒序索引值(从0开始)
    forloop.first 当前循环是不是第一次循环(布尔值)
    forloop.last 当前循环是不是最后一次循环(布尔值)
    forloop.parentloop 本层循环的外层循环

    for ... empty

    # 如果user_list 里面元素为0个的时候执行 empty
    
    <ul>
    {% for user in user_list %}
        <li>{{ user.name }}</li>
    {% empty %}
        <li>空空如也</li>
    {% endfor %}
    </ul>
  2. if判断

    # if,elif和else
    
    {% if user_list %}
      用户人数:{{ user_list|length }}
    {% elif black_list %}
      黑名单数:{{ black_list|length }}
    {% else %}
      没有用户
    {% endif %}
    # 当然也可以只有if和else
    
    {% if user_list|length > 5 %}
      七座豪华SUV
    {% else %}
        黄包车
    {% endif %}
    
    # if语句支持 and 、or、==、>、<、!=、<=、>=、in、not in、is、is not判断。
  3. with

    # 定义一个中间变量,多用于给一个复杂的变量起别名。
    
    # 注意等号左右不要加空格。
    
    {% with total=business.employees.count %}
        {{ total }} employee{{ total|pluralize }}
    {% endwith %}
    
    # 或
    
    {% with business.employees.count as total %}
        {{ total }} employee{{ total|pluralize }}
    {% endwith %}
  4. csrf_token

    这个标签用于跨站请求伪造保护。

    在页面的form表单里面写上{% csrf_token %}

  5. 注意事项

    1. Django的模板语言不支持连续判断,即不支持以下写法:

      {% if a > b > c %}
      ...
      {% endif %}
    2. Django的模板语言中属性的优先级大于方法

      def xx(request):
          d = {"a": 1, "b": 2, "c": 3, "items": "100"}
          return render(request, "xx.html", {"data": d})

      如上,我们在使用render方法渲染一个页面的时候,传的字典d有一个key是items并且还有默认的 d.items() 方法,此时在模板语言中:

      {{ data.items }}

      默认会取d的items key的值。

原文地址:https://www.cnblogs.com/wtil/p/11488523.html

时间: 2024-10-07 19:02:24

Django模板语言-Tags的相关文章

Django模板语言

常用语法 {{  }}和{% %} 变量相关的用{{}} , 逻辑相关的用{% %} 变量 在Django的模板语言中按此语法使用:{{ 变量名 }}. 当模版引擎遇到一个变量,它将计算这个变量,然后用结果替换掉它本身. 变量 的命名包括任何字母数字以及下划线 ("_")的组合(不提倡数字开头). 变量名称中 不能有空格或标点符号. 点(.)在模板语言中有特殊的含义.当模版系统遇到点("."),它将以这样的顺序 查询: 字典查询(Dictionary lookup)

Django模板语言小记

1.blog.views.py  # Create your views here. from django.template import loader,Context from django.http import HttpResponse from blog.models import BlogPost def archive(request):     posts = BlogPost.objects.all()     t = loader.get_template('archive.

django 模板语言

Django的模板语言的目的是取得力量和易用性之间的平衡,与其他的模板语言相比,django模板语言显得更简单,更专一, django模板系统由模板,变量,过滤器,标签,注释等主要部分组成 模板 一个模板是一个简单的文本文件,它可以生成任何基于文本的格式,html,csv,xml等等 模板里面包含变量,过滤器,标签和注释,下面是一个简单的模板文件 {% extends "base_generic.html" %} {% block title %}{{ section.title }}

Django模板语言相关内容

Django模板系统 官方文档:https://docs.djangoproject.com/en/1.11/ref/templates/builtins/#std:templatetag-for 常用语法 只需要记两种特殊符号: {{  }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} 变量名由字母数字和下划线组成. 点(.)在模板语言中有特殊的含义,用来获取对象的相应属性值. 几个例子: view中代码: def template_test(requ

Django(模板语言-自定义filter和simple_tag)

filter过滤器的主要形式:变量|函数,意思是将变量交给函数处理,而自定义filter就是自己定义函数,因为用到已有的很少. 1.在当前app中创建templatetags模块(包:带__init__.py)(必须的) 2.在templatetags中创建.py文件,如my_tags.py from django import template #因为要应用到前端模板语言,必须导入template from django.utils.safestring import mark_safe re

Django模板语言-Filters(过滤器)

Filters(过滤器) 在Django的模板语言中,通过使用 过滤器 来改变变量的显示. 过滤器的语法: {{ value|filter_name:参数 }} 使用管道符"|"来应用过滤器. 例如:{{ name|lower }}会将name变量应用lower过滤器之后再显示它的值.lower在这里的作用是将文本全都变成小写. 注意事项: 过滤器支持“链式”操作.即一个过滤器的输出作为另一个过滤器的输入. 过滤器可以接受参数,例如:{{ sss|truncatewords:30 }}

Django 模板语言从后端传到前端

如果我们在后端有数据动态提取到前端的时候 就需要模板语言加以渲染后再将渲染好的HTML文件传入前端 我们的views.py里的index函数里有个s变量是个列表,将数据以大括号的形式传入{"list":s} 把s传入list. html的要加入的地方是用2个大括号引入的   <h1>{{ list.1 }}</h1> 用的是句点符获取列表第二个参数 和python的语法取得列表不同(list[1]) -------------------------------

自定义django模板的 tags和filters

Custom template tags and filters https://docs.djangoproject.com/en/dev/howto/custom-template-tags/ 有一个应用polls结构如下,如何自定义templatetags polls/     __init__.py     models.py     templatetags/         __init__.py         poll_extras.py     views.py 一,安装pol

Django模板语言(DTL)基础

## 模板变量 - 普通变量 {{ name }} - 对象变量(使用点号访问对象属性和方法,方法不加括号) {{ person.name }} ## 常用模板标签 # if标签,支持and,or,not和嵌套,不支持括号 {% if %}{% endif %} {% if %}{% elif %}...{% else %}{% endif %} # for标签,用法与Python中基本相同 {% for item in items %}{% endfor %} {% for item in i