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


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

查看所有标签

猜你喜欢:

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

素数之恋

素数之恋

(美)约翰·德比希尔 / 陈为蓬 / 上海科技教育出版社 / 2008-12-01 / 34.00元

1859年8月,没什么名气的32岁数学家黎曼向柏林科学院提交了一篇论文,题为“论小于一个给定值的素数的个数”。在这篇论文的中间部分,黎曼作了一个附带的备注——一个猜测,一个假设。他向那天被召集来审查论文的数学家们抛出的这个问题,结果在随后的年代里给无数的学者产生了近乎残酷的压力。时至今日,在经历了150年的认真研究和极力探索后,这个问题仍然悬而未决。这个假设成立还是不成立? 已经越来越清楚,......一起来看看 《素数之恋》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

URL 编码/解码
URL 编码/解码

URL 编码/解码