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脚本生成Android SALT扰码的方法
Sep 18 Python
Python实现的FTP通信客户端与服务器端功能示例
Mar 28 Python
Python实现删除时保留特定文件夹和文件的示例
Apr 27 Python
Python图像处理之简单画板实现方法示例
Aug 30 Python
Python 通过调用接口获取公交信息的实例
Dec 17 Python
pandas对dataFrame中某一个列的数据进行处理的方法
Jul 08 Python
python正则爬取某段子网站前20页段子(request库)过程解析
Aug 10 Python
python 的 openpyxl模块 读取 Excel文件的方法
Sep 09 Python
Python集合基本概念与相关操作实例分析
Oct 30 Python
pandas中的ExcelWriter和ExcelFile的实现方法
Apr 24 Python
Keras load_model 导入错误的解决方式
Jun 09 Python
Python用requests库爬取返回为空的解决办法
Feb 21 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
用js计算页面执行时间的函数
2006/12/07 Javascript
document.compatMode介绍
2009/05/21 Javascript
ie8 不支持new Date(2012-11-10)问题的解决方法
2013/07/31 Javascript
JS实现可自定义大小,可双击关闭的弹出层效果
2015/10/16 Javascript
JavaScript类型系统之正则表达式
2016/01/05 Javascript
JQuery ztree 异步加载实例讲解
2016/02/25 Javascript
详解nodejs 文本操作模块-fs模块(五)
2016/12/23 NodeJs
angular4实现tab栏切换的方法示例
2017/10/21 Javascript
vue 数组和对象不能直接赋值情况和解决方法(推荐)
2017/10/25 Javascript
将jquery.qqFace.js表情转换成微信的字符码
2017/12/01 jQuery
vue.js实现插入数值与表达式的方法分析
2018/07/06 Javascript
解决angular2 获取到的数据无法实时更新的问题
2018/08/31 Javascript
小程序云开发实战小结
2018/10/25 Javascript
angular组件间通讯的实现方法示例
2020/05/07 Javascript
JS数组及对象遍历方法代码汇总
2020/06/16 Javascript
Python中的tuple元组详细介绍
2015/02/02 Python
利用Python中SocketServer 实现客户端与服务器间非阻塞通信
2016/12/15 Python
python如何保证输入键入数字的方法
2019/08/23 Python
Jupyter打开图形界面并画出正弦函数图像实例
2020/04/24 Python
Python之字符串的遍历的4种方式
2020/12/08 Python
基于tensorflow __init__、build 和call的使用小结
2021/02/26 Python
小蚁科技官方商店:YI Technology
2019/08/23 全球购物
介绍一下Cookie和Session及他们之间的区别
2012/11/20 面试题
2019年Java 最常见的 面试题
2016/10/19 面试题
西部世纪面试题
2014/12/05 面试题
手术室护士自我鉴定
2013/10/14 职场文书
金融专业推荐信
2013/11/14 职场文书
2014学年自我鉴定
2014/02/23 职场文书
化学专业毕业生求职信
2014/07/28 职场文书
学生会竞选演讲稿纪检部
2014/08/25 职场文书
幼儿园六一亲子活动方案
2014/08/26 职场文书
个人三严三实对照检查材料
2014/09/25 职场文书
校园广播稿精选
2014/10/01 职场文书
2014年无财产无子女离婚协议书范本
2014/10/09 职场文书
公司副总经理岗位职责
2015/04/08 职场文书
Python集合set()使用的方法详解
2022/03/18 Python