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实现控制台输入密码的方法
May 29 Python
Python的pycurl包用法简介
Nov 13 Python
Python中functools模块的常用函数解析
Jun 30 Python
Python编程实现微信企业号文本消息推送功能示例
Aug 21 Python
浅谈用Python实现一个大数据搜索引擎
Nov 28 Python
python十进制和二进制的转换方法(含浮点数)
Jul 07 Python
python生成器用法实例详解
Nov 22 Python
Python线程障碍对象Barrier原理详解
Dec 02 Python
pycharm激活码快速激活及使用步骤
Mar 12 Python
Python实现动态循环输出文字功能
May 07 Python
python中zip()函数遍历多个列表方法
Feb 18 Python
关于 Python json中load和loads区别
Nov 07 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
php2html php生成静态页函数
2008/12/08 PHP
用PHP将网址字符串转换成超链接(网址或email)
2010/05/25 PHP
服务器web工具 php环境下
2010/12/29 PHP
深入理解PHP内核(一)
2015/11/10 PHP
浅谈PHP检查数组中是否存在某个值 in_array 函数
2016/06/13 PHP
javascript中的if语句使用介绍
2013/11/20 Javascript
node.js不得不说的12点内容
2014/07/14 Javascript
js图片轮播手动切换效果
2015/11/10 Javascript
jquery控制页面的展开和隐藏实现方法(推荐)
2016/10/15 Javascript
nodejs 搭建简易服务器的图文教程(推荐)
2017/07/18 NodeJs
利用nginx + node在阿里云部署https的步骤详解
2017/12/19 Javascript
AngularJS实现的根据数量与单价计算总价功能示例
2017/12/26 Javascript
微信小程序利用canvas 绘制幸运大转盘功能
2018/07/06 Javascript
vue-router懒加载速度缓慢问题及解决方法
2018/11/25 Javascript
详谈Vue.js框架下main.js,App.vue,page/index.vue之间的区别
2020/08/12 Javascript
[27:08]完美世界DOTA2联赛PWL S2 SZ vs Rebirth 第二场 11.21
2020/11/23 DOTA
Python选择排序、冒泡排序、合并排序代码实例
2015/04/10 Python
python 实现tar文件压缩解压的实例详解
2017/08/20 Python
python获取程序执行文件路径的方法(推荐)
2018/04/26 Python
Python清空文件并替换内容的实例
2018/10/22 Python
python3使用matplotlib绘制散点图
2019/03/19 Python
Python队列RabbitMQ 使用方法实例记录
2019/08/05 Python
python 变量初始化空列表的例子
2019/11/28 Python
flask框架蓝图和子域名配置详解
2020/01/25 Python
python rsa-oaep加密的示例代码
2020/09/23 Python
在html页面中取得session中的值的方法
2020/08/11 HTML / CSS
宝拉珍选澳大利亚官方购物网站:Paula’s Choice澳大利亚
2016/09/13 全球购物
捷克购买家具网站:JENA nábytek
2020/03/19 全球购物
毕业生自荐书
2014/02/03 职场文书
班长自荐书范文
2014/02/11 职场文书
三八妇女节活动主持词
2014/03/17 职场文书
竞选班长演讲稿500字
2014/08/22 职场文书
nginx处理http请求实现过程解析
2021/03/31 Servers
iPhone13将有八大升级
2021/04/15 数码科技
漫画「狩龙人拉格纳」公开TV动画预告图
2022/03/22 日漫
戴尔Win11系统no bootable devices found解决教程
2022/09/23 数码科技