• Django模板语言(Template)


    1.变量

      变量相关用 { { } }   逻辑相关用{% %}

    2.Filter过滤器

      (1)default

        如果一个变量是false或者为空,使用给定的默认值。 否则,使用变量的值。

          {{ value|default:"nothing"}}

      (2)length

        返回值的长度,作用于字符串和列表。

        {{ value|length }}

        返回value的长度,如 value=['a', 'b', 'c', 'd']的话,就显示4.

      (3)filesizeformat

        将值格式化为一个 “人类可读的” 文件尺寸 (例如 '13 KB''4.1 MB''102 bytes', 等等)。例如:

        {{ value|filesizeformat }}

        如果 value 是 123456789,输出将会是 117.7 MB。

        (4)  slice

        切片

        {{value|slice:"2:-1"}}

       (5)data

        格式化

        {{ value|date:"Y-m-d H:i:s"}}

       (6)safe

        

        Django的模板中会对HTML标签和JS等语法标签进行自动转义,原因显而易见,这样是为了安全。但是有的时候我们可能不希望这些HTML元素被转义,比如我们做一个内容管                理系统,后台添加的文章中是经过修饰的,这些修饰可能是通过一个类似于FCKeditor编辑加注了HTML修饰符的文本,如果自动转义的话显示的就是保护HTML标签的源文件。为了在Django中关闭HTML的自动转义有两种方式,如果是一个单独的变量我们可以通过过滤器“|safe”的方式告诉Django这段代码是安全的不必转义。

    比如:

    value = "<a href='#'>点我</a>"

        {{ value|safe}}

       (7)truncatechars

        

        如果字符串字符多于指定的字符数量,那么会被截断。截断的字符串将以可翻译的省略号序列(“...”)结尾。参数:截断的字符数

         {{ value|truncatechars:9}}

      (8)自定义Filter

        

        自定义过滤器只是带有一个或两个参数的Python函数:

                 变量(输入)的值 - -不一定是一个字符串

                 参数的值 - 这可以有一个默认值,或完全省略

                 例如,在过滤器{{var | foo:'bar'}}中,过滤器foo将传递变量var和参数“bar”

        第一步在app文件下创建templattages文件

        第二步在文件里创建python文件( myfilter.py)

        编写代码

    from django import template
    register = template.Library()
    
    
    @register.filter(name="cut")
    def cut(value, arg):
        return value.replace(arg, "")
    
    
    @register.filter(name="addSB")
    def add_sb(value):
        return "{} SB".format(value)
    

      在HTML中导入python文件

    {# 先导入我们自定义filter那个文件 #}
    {% load app01_filters %}
    
    {# 使用我们自定义的filter #}
    {{ somevariable|cut:"0" }}
    {{ d.name|addSB }}
    

      

        

  • 相关阅读:
    js 正则验证输入框只允许输入正实数和正整数和负整数
    阿里maven镜像服务器配置
    JDK环境变量配置
    AndroidStudio OpenCv的配置,不用安装opencv manager
    Java实现红黑树
    基于红黑树的骨架提取Java
    基于Mat变换的骨架提取Java
    Java实现二叉树的四种遍历
    Java实现常见的几种排序
    hough变换检测直线Java
  • 原文地址:https://www.cnblogs.com/wm0217/p/10698820.html
Copyright © 2020-2023  润新知