Falsk 与 Django 过滤器的使用与区别

栏目: Python · 发布时间: 6年前

内容简介:1,flask中内置的过滤器模板中常用方法:自定义过滤器(后端视图函数)2,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}}   年龄:{{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}}

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址: https://www.linuxidc.com/Linux/2019-06/158953.htm


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Remote

Remote

Jason Fried、David Heinemeier Hansson / Crown Business / 2013-10-29 / CAD 26.95

The “work from home” phenomenon is thoroughly explored in this illuminating new book from bestselling 37signals founders Fried and Hansson, who point to the surging trend of employees working from hom......一起来看看 《Remote》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

html转js在线工具
html转js在线工具

html转js在线工具