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 查看文件的读写权限方法
Jan 23 Python
python实现图片文件批量重命名
Mar 23 Python
python如何解析配置文件并应用到项目中
Jun 27 Python
对Django 中request.get和request.post的区别详解
Aug 12 Python
使用Python和OpenCV检测图像中的物体并将物体裁剪下来
Oct 30 Python
Python+Redis实现布隆过滤器
Dec 08 Python
tensorflow -gpu安装方法(不用自己装cuda,cdnn)
Jan 20 Python
pytorch实现保证每次运行使用的随机数都相同
Feb 20 Python
python opencv实现图片缺陷检测(讲解直方图以及相关系数对比法)
Apr 07 Python
详解Django配置JWT认证方式
May 09 Python
python修改微信和支付宝步数的示例代码
Oct 12 Python
numba提升python运行速度的实例方法
Jan 25 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
PHP5.2中date()函数显示时间与北京时间相差8小时的解决办法
2009/05/28 PHP
一个php生成16位随机数的代码(两种方法)
2014/09/16 PHP
php+mysql+ajax 局部刷新点赞/取消点赞功能(每个账号只点赞一次)
2020/07/24 PHP
两个SUBMIT按钮,如何区分处理
2006/08/22 Javascript
浅谈关于JavaScript的语言特性分析
2013/04/11 Javascript
详解JavaScript语法对{}处理的坑爹之处
2014/06/05 Javascript
js实现的Easy Tabs选项卡用法实例
2015/09/06 Javascript
使用jquery获取url以及jquery获取url参数的实现方法
2016/05/25 Javascript
canvas学习之API整理笔记(二)
2016/12/29 Javascript
vue 页面加载进度条组件实例
2018/02/05 Javascript
微信小程序学习笔记之目录结构、基本配置图文详解
2019/03/28 Javascript
详解如何给React-Router添加路由页面切换时的过渡动画
2019/04/25 Javascript
微信小程序授权登陆及每次检查是否授权实例代码
2019/09/18 Javascript
javascript实现点亮灯泡特效示例
2019/10/15 Javascript
JavaScript实现更换背景图片
2019/10/18 Javascript
vue element-ui中table合计指定列求和实例
2020/11/02 Javascript
[03:42]2014DOTA2国际邀请赛 第三日比赛排位扑朔迷离
2014/07/12 DOTA
python服务器与android客户端socket通信实例
2014/11/12 Python
python使用wxPython打开并播放wav文件的方法
2015/04/24 Python
python中查看变量内存地址的方法
2015/05/05 Python
用Python删除本地目录下某一时间点之前创建的所有文件的实例
2017/12/14 Python
Python实现的计算器功能示例
2018/04/26 Python
python提取包含关键字的整行数据方法
2018/12/11 Python
python3下载抖音视频的完整代码
2019/06/05 Python
Python学习笔记之文件的读写操作实例分析
2019/08/07 Python
Python3 A*寻路算法实现方式
2019/12/24 Python
加拿大高尔夫超市:Golf Town
2018/01/12 全球购物
中学生英语演讲稿
2014/04/26 职场文书
医学生求职信
2014/07/01 职场文书
机械操作工岗位职责
2014/08/08 职场文书
土地租赁协议书
2015/01/29 职场文书
客房领班岗位职责
2015/02/11 职场文书
2016清明节森林防火广播稿
2015/12/17 职场文书
党章党规党纪学习心得体会
2016/01/14 职场文书
Kubernetes中Deployment的升级与回滚
2022/04/01 Servers
一文了解MYSQL三大范式和表约束
2022/04/03 MySQL