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程序与C程序的结合使用
Apr 07 Python
Python基于SMTP协议实现发送邮件功能详解
Aug 14 Python
在Python 中同一个类两个函数间变量的调用方法
Jan 31 Python
Python网络爬虫之爬取微博热搜
Apr 18 Python
python实现图片转字符小工具
Apr 30 Python
200行python代码实现2048游戏
Jul 17 Python
详解Python中正则匹配TAB及空格的小技巧
Jul 26 Python
如何在Django配置文件里配置session链接
Aug 06 Python
Python 切分数组实例解析
Nov 07 Python
Django 自定义分页器的实现代码
Nov 24 Python
浅析matlab中imadjust函数
Feb 27 Python
python递归函数用法详解
Oct 26 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
人大复印资料处理程序_补充篇
2006/10/09 PHP
php编写的简单页面跳转功能实现代码
2013/11/27 PHP
zf框架的registry(注册表)使用示例
2014/03/13 PHP
php多任务程序实例解析
2014/07/19 PHP
PHP使用MPDF类生成PDF的方法
2015/12/08 PHP
PHP图片添加水印功能示例小结
2016/10/03 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
JSQL 批量图片切换的实现代码
2010/05/05 Javascript
js防止表单重复提交的两种方法
2013/09/30 Javascript
Egret引擎开发指南之视觉编程
2014/09/03 Javascript
JavaScript获取当前网页标题(title)的方法
2015/04/03 Javascript
javascript HTML5 Canvas实现圆盘抽奖功能
2016/04/11 Javascript
JS沙箱模式实例分析
2017/09/04 Javascript
web前端页面生成exe可执行文件的方法
2018/02/08 Javascript
关于redux-saga中take使用方法详解
2018/02/27 Javascript
一步步教会你微信小程序的登录鉴权
2018/04/09 Javascript
JS实现百度网盘任意文件强制下载功能
2018/08/31 Javascript
vue项目在安卓低版本机显示空白的原因分析(两种)
2018/09/04 Javascript
Vue-Quill-Editor富文本编辑器的使用教程
2018/09/21 Javascript
Vuex的API文档说明详解
2020/02/05 Javascript
js实现简单的轮播图效果
2020/12/13 Javascript
[40:13]Ti4 冒泡赛第二天 iG vs NEWBEE 2
2014/07/15 DOTA
[03:17]DOTA2-DPC中国联赛1月29日Recap集锦
2021/03/11 DOTA
python协程用法实例分析
2015/06/04 Python
Python获取文件所在目录和文件名的方法
2017/01/12 Python
Python程序员面试题 你必须提前准备!(答案及解析)
2018/01/23 Python
详解利用OpenCV提取图像中的矩形区域(PPT屏幕等)
2019/07/01 Python
python线程join方法原理解析
2020/02/11 Python
解决django migrate报错ORA-02000: missing ALWAYS keyword
2020/07/02 Python
英国顶级家庭折扣店:The Works
2017/09/06 全球购物
巴西服装和鞋子购物网站:Marisa
2018/10/25 全球购物
交通事故赔偿协议书范本
2014/04/15 职场文书
工作保证书范文
2014/04/29 职场文书
银行中层干部培训心得体会
2016/01/11 职场文书
2016年第29个世界无烟日宣传活动总结
2016/04/06 职场文书
创业计划书之游泳馆
2019/09/16 职场文书