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实现通过shelve修改对象实例
Sep 26 Python
用Python代码来解图片迷宫的方法整理
Apr 02 Python
Python探索之Metaclass初步了解
Oct 28 Python
Python实现定时备份mysql数据库并把备份数据库邮件发送
Mar 08 Python
python实现顺序表的简单代码
Sep 28 Python
python3操作注册表的方法(Url protocol)
Feb 05 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
Jun 15 Python
python+selenium 简易地疫情信息自动打卡签到功能的实现代码
Aug 22 Python
Python 常用日期处理 -- calendar 与 dateutil 模块的使用
Sep 02 Python
Python 实现键盘鼠标按键模拟
Nov 18 Python
基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达的源码
Feb 18 Python
pandas统计重复值次数的方法实现
Feb 20 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
PHP、Java des加密解密实例
2015/04/27 PHP
Yii数据库缓存实例分析
2016/03/29 PHP
thinkphp3.2实现跨控制器调用其他模块的方法
2017/03/14 PHP
javascript firefox不显示本地预览图片问题的解决方法
2008/11/12 Javascript
javascript使用location.search的示例
2013/11/05 Javascript
JavaScript设计模式之装饰者模式介绍
2014/12/28 Javascript
$.extend 的一个小问题
2015/06/18 Javascript
javascript框架设计之种子模块
2015/06/23 Javascript
JavaScript生成指定范围随机数和随机序列的方法
2018/05/05 Javascript
layui表单验证select下拉框实现验证的方法
2019/09/05 Javascript
[00:58]PWL开团时刻DAY5——十人开雾0换5
2020/11/04 DOTA
Python编程中的反模式实例分析
2014/12/08 Python
python检测远程udp端口是否打开的方法
2015/03/14 Python
Python随机生成一个6位的验证码代码分享
2015/03/24 Python
在Apache服务器上同时运行多个Django程序的方法
2015/07/22 Python
matplotlib绘制动画代码示例
2018/01/02 Python
Python PyQt4实现QQ抽屉效果
2018/04/20 Python
python2.7实现爬虫网页数据
2018/05/25 Python
python3 kmp 字符串匹配的方法
2018/07/07 Python
python3 读取Excel表格中的数据
2018/10/16 Python
PyQt 实现使窗口中的元素跟随窗口大小的变化而变化
2019/06/18 Python
python连接mysql数据库并读取数据的实现
2020/09/25 Python
用Python 执行cmd命令
2020/12/18 Python
6种非常炫酷的CSS3按钮边框动画特效
2016/03/16 HTML / CSS
Sunglasses Shop丹麦:欧洲第一的太阳镜在线销售网站
2017/10/22 全球购物
Draper James官网:知名演员瑞茜·威瑟斯彭所创品牌
2017/10/25 全球购物
Zooplus葡萄牙:欧洲领先的网上宠物商店
2018/07/01 全球购物
俄罗斯最大的在线珠宝大卖场:Nebo
2019/12/08 全球购物
eHarmony英国:全球领先的认真恋爱约会平台之一
2020/11/16 全球购物
编辑硕士自荐信范文
2013/11/27 职场文书
中学劳技课教师的自我评价
2014/02/05 职场文书
科级干部群众路线教育实践活动对照检查材料思想汇报
2014/09/20 职场文书
2014国庆黄金周超市促销活动方案
2014/09/21 职场文书
2015年财务试用期工作总结
2014/12/24 职场文书
房地产销售经理岗位职责
2015/02/02 职场文书
Python爬虫进阶之Beautiful Soup库详解
2021/04/29 Python