首页 > 编程 > Python > 正文

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

2019-11-25 12:49:09
字体:
来源:转载
供稿:网友

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.filterdef my_str(val):  return "$" +str(val)#定义一个双参数过滤器@register.filterdef my_str_two(val,p1):  return val + p1#定义一个多参数的过滤器#注册过滤器的时候,需要注册SIMPLE_TAG@register.simple_tagdef my_str_many(val,p1,p2):  return val + p1 + p2#定义一个取余数的过滤器@register.filterdef 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}}

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表