• falsk 与 django 过滤器的使用与区别


    1,flask中内置的过滤器模板中常用方法:

    {#过滤器调用方式{{变量|过滤器名称}} #}
        <!-- safe过滤器,可以禁用转义 -->
        {{'<strong>hello</strong>'|safe}}
        <br/>
        大写转小写
        {{'HELLO'|lower}}
        小写转大写
        {{'hello'|upper}}
        <br/>
        字符串反转
        {{'abc'|reverse}}
        首字母大写
        {{'james'|capitalize}}
        过滤HTML标签
        {{'<em>apple</em>'| striptags}}
        <br/>
        只显示list首个元素
        {{[100,95,55,81]|first}}
        只显示list最后一个元素
        {{[100,95,55,81]|last}}
        显示list的长度
        {{[100,95,55,81]|length}}
        list里所有元素求和
        {{[100,95,55,81]|sum}}
        list进行排序
        {{[100,95,55,81]|sort}}
        format:格式化输出
        {{ '%s is %d' | format('name',17) }}
        <br/>
        对语句块进行过滤
        {% filter upper%}
        qwedr,tyuio,piuytre,rtyuiuyt
        afaife       oifafa, afaf
        {%endfilter%} <br/>
        链式调用过滤器
        {{'abc'|reverse|upper}}
    
        <br><br>
        自定义过滤器
        {{100|my_filter}}

    自定义过滤器(后端视图函数)

    @app.template_filter("my_filter")
    #自定义过滤器
    def my_filter(val):
        return '$' + str(val)

    2,django中内置的过滤器模板中常用方法:

    {#通过内置过滤器实现加减法#}
        {{test_int | add:10}}
        {{list.0}}
        <br>
        {%for i in list%}
        {{i}}
        {#打印索引 从1开始的计数器#}
        {{forloop.counter}}
        {#打印数组索性#}
        {{forloop.counter0}}
        {#倒序索引#}
        {{forloop.revcounter}}
        <br>
        {%endfor%}
    
        <br>
        {% for i in dict%}
        {#取首位和末尾 first last#}
        姓名:{{i.name |first}} &nbsp; 年龄:{{i.age}}
        {%endfor%}
        <br>
        {#大写小写#}
        {{'jack' | upper | lower}}
        {#返回长度#}
        {{'123456'| length}}
        {#截断操作#}
        {{content | truncatechars:10}}
        截断单词{{content | truncatewords:2}}
        {# 格式化日期#}
        {{dt | date:'Y-m-d H:i:s'}}

    自定义过滤器(后端视图函数)

    首先在工程文件的同名配置文件下创建templatetags文件夹,建立myfiler.py用来自定义过滤器

    例:

    from django import template
    #注册过滤器对象
    register = template.Library()
    #自定义过滤器
    #通过装饰器的方式来注册自定义过滤器
    @register.filter
    def my_str(val):
        return "$" +str(val)
    #定义一个双参数过滤器
    @register.filter
    def my_str_two(val,p1):
        return val + p1
    
    #定义一个多参数的过滤器
    #注册过滤器的时候,需要注册SIMPLE_TAG
    @register.simple_tag
    def my_str_many(val,p1,p2):
        return val + p1 + p2
    #定义一个取余数的过滤器
    @register.filter
    def get_line(val):
        return int(val) % 2

    在templates文件夹中模板文件中导入

    {#导入过滤器文件#}
    {% load myfilter %}
    {#导入过滤器文件#}
    {% load my_filter %}
    {{test_str | my_str}}
        {# 两个参数进行调用#}
        {{'你好' | my_str_two:"不好"}}
        {#调用多参数的过滤器#}
        {% my_str_many '你好' '不好' '' %}                             
        {{test_list | length}}
     
  • 相关阅读:
    iOS7,iOS8和iOS9的区别
    NSUrl
    什么是 MIME TYPE?
    TCP协议与UDP协议的区别
    KVC、KVO、NSNotification、delegate 总结及区别
    cocoapods 安装过程及常见问题
    素材丶资料
    方法 笔记(二)
    UIWebView UITextView
    在oj中Python的循环输入问题解决
  • 原文地址:https://www.cnblogs.com/xcsg/p/10310897.html
Copyright © 2020-2023  润新知