• Django常用模板标签及过滤器


    目录

    • 一 模板的组成
    • 二 逻辑控制代码的组成
      • 变量使用双大括号来引用变量
      • 标签tag的使用使用大括号和百分号组成来表示使用tag
      • 过滤器filter的使用
    • 三 常用标签tag
      • if
      • ifequal 和 ifnotequal
      • for
      • cycle
      • 注释
      • csrf_token
      • debug
      • filter
      • autoescape
      • firstof
      • load
      • now
      • spaceless
      • url
      • verbatim
      • with

    • 四 常用过滤器filter
      • add
      • addslashes
      • capfirst
      • cut
      • date
      • default
      • default_if_none
      • dictsort
      • dictsorted
      • divisbleby
      • escape
      • escapejs
      • filesizeformat
      • first
      • last
      • floatformat
      • length
      • length_is
      • urlencode
      • upperlower
      • safe
      • slice
      • time
      • timesince
      • truncatechars
      • turncatewords
      • striptags

    • 五 文档

    一 模板的组成

    • HTML代码+逻辑控制代码

    二 逻辑控制代码的组成

    1 变量(使用双大括号来引用变量)

     {{ var_name }}

    2 标签(tag)的使用(使用大括号和百分号组成来表示使用tag)

    {% load staticfiles %}

    3 过滤器(filter)的使用

    {{ ship_date|date:"Fj,Y"}}
    • ship_date变量传给data过滤器,data过滤器通过使用Fj,Y这几个参数来格式化数据。|代表类似Unix命令中的管道操作。

    三 常用标签(tag)

    1 {% if %}

    • 可以使用and,or,not来组织你的逻辑,但不允许and和or同时出现的条件语句中。新版本已经支持{% elif %}这样的用法

    2 {% ifequal %}{% ifnotequal %}

    • 比较是否相等,只限于简单的类型,比如字符串、整数、小数的比较,列表、字典、元组不支持。

    3 {% for %}

    • 用来循环一个list,还可以使用reserved关键字来进行倒序遍历,一般可以用if语句来西先判断一下列表是否为空,在进行遍历;还可以使用empty关键字来进行为空时候的跳转。

    • **for标签中可以使用forloop

    forloop.counter: 当前循环计数,从1开始
    forloop.counter0: 当前循环计数,从0开始
    forloop.recounter: 当前循环倒数计数,从列表长度开始
    forloop.recounter0: 当前循环倒数计数,从列表长度减1开始,标准
    forloop.first: bool值,判断是不是循环的第一个元素
    forloop.last: bool值,判断是不是循环的最后一个元素
    forloop.parentloop: 用在嵌套循环中,得到parent循环的引用,然后可以使用以上参数

    4 {% cycle %}

    • 在循环是轮流使用给定的字符串列表中的值。

    5 注释

    • {# #}单行注释,{% comment %}多行注释

    6 {% csrf_token %}

    • 生成csrf_token的标签,用于防止跨站攻击验证

    7 {% debug %}

    • 调用调试信息

    8 {% filter %}

    • 将filter标签标签圈定的执行过滤器操作

    9 {% autoescape %}

    • 自动转义设置
    {{% autoescape off %}}
    {{ value}}
    {{% endautoescape %}}

    10 {% firstof %}

    • 输出第一个值不等于False的变量

    11 {% load %}

    • 加载标签库

    12 {% now %}

    • 获取当前的时间

    13 {% spaceless %}

    • 移除空格

    14 {% url %}

    • 引入路由配置的地址

    15 {% verbatim %}

    • 禁止render

    16 {% with %}

    • 用更简单的变量名缓存复制的变量名

    四 常用过滤器(filter)

    • 经常使用的是通过变量来调用过滤器)

    1 add

    • 给变量加上相应的值
     {{ value|add:"2" }}     # 空格不要乱加

    2 addslashes

    • 给变量中的引号(双引号、单引号)前加上斜线

    3 capfirst

    • 首字母大写

    4 cut

    • 从字符串中移除指定的字符
     {{ value|cut:" " }}

    5 date

    • 格式化日期字符串

    6 default

    • 如果值是False,就替换成设置的默认值,否则就使用本来的值(空字符串”“、空列表[]、空字典{}、空元组()、None在python里也是False)

    7 default_if_none

    • 如果只是None,就替换成设置的默认值,否则就使用本来的值

    8 dictsort

    • 按照设定的参数(key)对应的value对列表进行排序

    9 dictsorted

    • 和上面恰好相反

    10 divisbleby

    • 是否能够被某个数字整除,是的话返回True,否则返回False

    11 escape

    • 对字符串进行转义。django默认自动转义,如果我们关闭了自动转义,这可使用escape过滤器来转义。

    12 escapejs

    • 替换value中的某些字符,以适应JAVASCRIPT和JSON格式

    13 filesizeformat

    • 格式化文件大小显示

    14 first

    • 返回列表中的第一个值

    15 last

    • 返回列表中的最后一个值

    16 floatformat

    • 格式化浮点数

    17 length

    • 求字符串或者列表的长度

    18 length_is

    • 比较字符串或者列表的长度

    19 urlencode

    • 对URL进行编码处理

    20 upperlower

    • 大写小写

    21 safe

    • 对某个变量关闭自动转义
    {{ value|safe }}

    22 slice

    • 切片操作
    {{ some_list|slice:":2" }}

    23 time

    • 格式化时间

    24 timesince

    • 格式化时间(e.g. “4 days,6 hours”)

    25 truncatechars

    • 按照字符截取字符串
    {{ value|truncatechars:5 }}

    26 turncatewords

    • 按照单词截取字符串(其实就是按照空格来截取)

    27 striptags

    • 过滤掉html标签

    五 文档

    官方文档https://docs.djangoproject.com/en/2.0/ref/templates/builtins/


  • 相关阅读:
    SQLAlchemy教程-第二章-SQL常用查询的ORM写法
    弹性数组
    C++模板
    typedef 函数名
    typedef 函数指针
    备忘录:“#ifdef __cplusplus extern "C" { #endif”的定义
    linux mmap 内存映射
    生成模型与判别模型(转)
    DL反向传播理解
    UFLDL(Unsupervised Feature Learning and Deep Learning)
  • 原文地址:https://www.cnblogs.com/fungitive/p/9136121.html
Copyright © 2020-2023  润新知