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

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

{#过滤器调用方式{{变量|过滤器名称}} #}

<!-- safe过滤器,可以禁用转义 -->

{{'<span>hello</span>'|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}}

以上是 Falsk 与 Django 过滤器的使用与区别详解 的全部内容, 来源链接: utcz.com/z/332712.html

回到顶部