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


Posted in Python onJune 04, 2019

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}}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python发送邮件示例(支持中文邮件标题)
Feb 16 Python
Python设置默认编码为utf8的方法
Jul 01 Python
python一键升级所有pip package的方法
Jan 16 Python
Python实现多线程抓取网页功能实例详解
Jun 08 Python
老生常谈python的私有公有属性(必看篇)
Jun 09 Python
pyhton列表转换为数组的实例
Apr 04 Python
详解Python 协程的详细用法使用和例子
Jun 15 Python
python交互模式下输入换行/输入多行命令的方法
Jul 02 Python
用Anaconda安装本地python包的方法及路径问题(图文)
Jul 16 Python
用Python写一个自动木马程序
Sep 17 Python
pycharm第三方库安装失败的问题及解决经验分享
May 09 Python
Python Pandas数据分析之iloc和loc的用法详解
Nov 11 Python
python儿童学游戏编程知识点总结
Jun 03 #Python
Python控制Firefox方法总结
Jun 03 #Python
python+webdriver自动化环境搭建步骤详解
Jun 03 #Python
selenium+python自动化测试环境搭建步骤
Jun 03 #Python
python+selenium实现自动化百度搜索关键词
Jun 03 #Python
用Q-learning算法实现自动走迷宫机器人的方法示例
Jun 03 #Python
Python多进程方式抓取基金网站内容的方法分析
Jun 03 #Python
You might like
phpcms的分类名称和类别名称的调用
2017/01/05 PHP
php表单处理操作
2017/11/16 PHP
tp5框架使用composer实现日志记录功能示例
2019/01/10 PHP
php和redis实现秒杀活动的流程
2019/07/17 PHP
PHP生成随机密码4种方法及性能对比
2020/12/11 PHP
jQuery-serialize()输出序列化form表单值的方法
2012/12/26 Javascript
js中apply方法的使用详细解析
2013/11/04 Javascript
js数字转换为float,取N位小数
2014/02/08 Javascript
jquery获取radio值实例
2014/10/16 Javascript
JS模仿编辑器实时改变文本框宽度和高度大小的方法
2015/08/17 Javascript
AngularJs Javascript MVC 框架
2016/06/20 Javascript
Base64(二进制)图片编码解析及在各种浏览器的兼容性处理
2017/02/09 Javascript
jquery编写日期选择器
2017/03/16 Javascript
Vue 理解之白话 getter/setter详解
2019/04/16 Javascript
vue实现PC端录音功能的实例代码
2019/06/05 Javascript
js实现贪吃蛇游戏(简易版)
2020/09/29 Javascript
jQuery实现图片切换效果
2020/10/19 jQuery
数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法
2018/07/09 Python
python实现简单flappy bird
2018/12/24 Python
使用Rasterio读取栅格数据的实例讲解
2019/11/26 Python
django修改models重建数据库的操作
2020/03/31 Python
浅谈matplotlib 绘制梯度下降求解过程
2020/07/12 Python
python实现数字炸弹游戏
2020/07/17 Python
利用Python实现朋友圈中的九宫格图片效果
2020/09/03 Python
美国知名的女性服饰品牌:LOFT(洛芙特)
2016/08/05 全球购物
职业生涯规划怎么写
2013/12/29 职场文书
服务员岗位职责
2014/01/29 职场文书
项目经理任命书
2014/06/04 职场文书
违反纪律检讨书范文
2015/05/07 职场文书
投诉书格式范本
2015/07/02 职场文书
酒店开业主持词
2015/07/02 职场文书
2016年学习贯彻十八届五中全会精神心得体会
2016/01/05 职场文书
《丑小鸭》教学反思
2016/02/19 职场文书
导游词之湖州-太湖
2019/10/11 职场文书
JVM的类加载器和双亲委派模式你了解吗
2022/03/13 Java/Android
基于docker安装zabbix的详细教程
2022/06/05 Servers