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系列之浅谈pickle模块封装和拆封数据对象的方法
May 23 Python
Python struct模块解析
Jun 12 Python
Python过滤函数filter()使用自定义函数过滤序列实例
Aug 26 Python
使用Python操作MySQL的一些基本方法
Aug 16 Python
python 队列详解及实例代码
Oct 18 Python
使用python itchat包爬取微信好友头像形成矩形头像集的方法
Feb 21 Python
pyside+pyqt实现鼠标右键菜单功能
Dec 08 Python
python里 super类的工作原理详解
Jun 19 Python
python实现windows倒计时锁屏功能
Jul 30 Python
Python集成开发工具Pycharm的安装和使用详解
Mar 18 Python
Python3开发实例之非关系型图数据库Neo4j安装方法及Python3连接操作Neo4j方法实例
Mar 18 Python
django admin管理工具自定义时间区间筛选器DateRangeFilter介绍
May 19 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
德劲1104的电路分析与改良
2021/03/01 无线电
松下Panasonic RF-B65电路分析
2021/03/02 无线电
用文本文件制作留言板提示(上)
2006/10/09 PHP
一步一步学习PHP(4) php 函数 补充2
2010/02/15 PHP
php expects parameter 1 to be resource, array given 错误
2011/03/23 PHP
PHP中的reflection反射机制测试例子
2014/08/05 PHP
WebQQ最新登陆协议的用法
2014/12/22 PHP
PHP 数组遍历foreach语法结构及实例
2016/06/13 PHP
Javascript学习笔记一 之 数据类型
2010/12/15 Javascript
js实现黑色简易的滑动门网页tab选项卡效果
2015/08/31 Javascript
jQuery实现的经典滑动门效果
2015/09/22 Javascript
angularjs+bootstrap菜单的使用示例代码
2017/03/07 Javascript
详谈AngularJs 控制器、数据绑定、作用域
2017/07/09 Javascript
详解a++和++a的区别
2017/08/30 Javascript
iframe高度自适应及隐藏滚动条的实例详解
2017/09/29 Javascript
vue-cli项目中使用Mockjs详解
2018/05/14 Javascript
从零撸一个pc端vue的ui组件库( 计数器组件 )
2019/08/08 Javascript
vue框架中props的typescript用法详解
2020/02/17 Javascript
javascript设计模式 ? 策略模式原理与用法实例分析
2020/04/21 Javascript
vue 解决data中定义图片相对路径页面不显示的问题
2020/08/13 Javascript
如何优雅地改进Django中的模板碎片缓存详解
2018/07/04 Python
python滑块验证码的破解实现
2019/11/10 Python
python的链表基础知识点
2020/09/13 Python
html5开发之viewport使用
2013/10/17 HTML / CSS
全球最大的在线旅游公司:Expedia
2017/11/16 全球购物
世界上最大的艺术和工艺用品商店:MisterArt.com
2018/07/13 全球购物
Vrbo英国:预订度假屋
2020/08/19 全球购物
写给女生的道歉信
2014/01/08 职场文书
幼儿园安全责任书范本
2014/07/24 职场文书
群众路线四风问题整改措施
2014/09/27 职场文书
2014年小学美术工作总结
2014/12/20 职场文书
烛光里的微笑观后感
2015/06/17 职场文书
幼儿园六一儿童节主持词
2015/06/30 职场文书
canvas多重阴影发光效果实现
2021/04/20 Javascript
python自动计算图像数据集的RGB均值
2021/06/18 Python
Tomcat配置访问日志和线程数
2022/05/06 Servers