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

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

{#过滤器调用方式{{变量|过滤器名称}} #}
  
  {{'hello'|safe}}
  
大写转小写 {{'HELLO'|lower}} 小写转大写 {{'hello'|upper}}
字符串反转 {{'abc'|reverse}} 首字母大写 {{'james'|capitalize}} 过滤HTML标签 {{'apple'| striptags}}
只显示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) }}
对语句块进行过滤 {% filter upper%} qwedr,tyuio,piuytre,rtyuiuyt afaife oifafa, afaf {%endfilter%}
链式调用过滤器 {{'abc'|reverse|upper}}

自定义过滤器 {{100|my_filter}}

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

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

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

{#通过内置过滤器实现加减法#}
  {{test_int | add:10}}
  {{list.0}}
  
{%for i in list%} {{i}} {#打印索引 从1开始的计数器#} {{forloop.counter}} {#打印数组索性#} {{forloop.counter0}} {#倒序索引#} {{forloop.revcounter}}
{%endfor%}
{% for i in dict%} {#取首位和末尾 first last#} 姓名:{{i.name |first}} 年龄:{{i.age}} {%endfor%}
{#大写小写#} {{'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 过滤器的使用与区别详解)