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之virtualenv的简单使用方法(必看篇)
Nov 25 Python
Python numpy实现数组合并实例(vstack,hstack)
Jan 09 Python
Python3匿名函数用法示例
Jul 25 Python
django框架模板中定义变量(set variable in django template)的方法分析
Jun 24 Python
python的pygal模块绘制反正切函数图像方法
Jul 16 Python
Python学习笔记之错误和异常及访问错误消息详解
Aug 08 Python
python函数修饰符@的使用方法解析
Sep 02 Python
Python selenium模拟手动操作实现无人值守刷积分功能
May 13 Python
python使用glob检索文件的操作
May 20 Python
Python获取指定日期是"星期几"的6种方法
Mar 13 Python
Matplotlib绘制条形图的方法你知道吗
Mar 21 Python
关于pytest结合csv模块实现csv格式的数据驱动问题
May 30 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
织梦模板标记简介
2007/03/11 PHP
PHP中防止SQL注入攻击和XSS攻击的两个简单方法
2010/04/15 PHP
php使HTML标签自动补全闭合函数代码
2012/10/04 PHP
繁简字转换功能
2006/07/19 Javascript
原生js实现跨浏览器获取鼠标按键的值
2013/04/08 Javascript
jQuery 获取兄弟元素的几种不错方法
2014/05/23 Javascript
被遗忘的javascript的slice() 方法
2015/04/20 Javascript
Grunt入门教程(自动任务运行器)
2015/08/06 Javascript
浅析js中substring和substr的方法
2015/11/09 Javascript
Angularjs全局变量被作用域监听的正确姿势
2016/02/06 Javascript
JavaScript实现in-place思想的快速排序方法
2016/08/07 Javascript
BootStrap3中模态对话框的使用
2017/01/06 Javascript
深入浅析Vue.js中 computed和methods不同机制
2018/03/22 Javascript
浅谈微信页面入口文件被缓存解决方案
2018/09/29 Javascript
教你如何编写Vue.js的单元测试的方法
2018/10/17 Javascript
Ant Design Pro 下实现文件下载的实现代码
2019/12/03 Javascript
Vue实现兄弟组件间的联动效果
2020/01/21 Javascript
JavaScript indexOf()原理及使用方法详解
2020/07/09 Javascript
JS typeof fn === 'function' &amp;&amp; fn()详解
2020/08/22 Javascript
如何在JavaScript中等分数组的实现
2020/12/13 Javascript
[07:39]第一届亚洲邀请赛回顾视频
2017/02/14 DOTA
基于Python实现的扫雷游戏实例代码
2014/08/01 Python
Python深入学习之内存管理
2014/08/31 Python
在Python中使用poplib模块收取邮件的教程
2015/04/29 Python
Python实现堆排序的方法详解
2016/05/03 Python
python多进程实现进程间通信实例
2017/11/24 Python
python微信跳一跳系列之自动计算跳一跳距离
2018/02/26 Python
numpy和pandas中数组的合并、拉直和重塑实例
2019/06/28 Python
django 2.2和mysql使用的常见问题
2019/07/18 Python
python日志模块logbook使用方法
2019/09/19 Python
Python安装及Pycharm安装使用教程图解
2019/09/20 Python
英国曼彻斯特宠物用品品牌:Bunty Pet Products
2019/07/27 全球购物
冰淇淋开店创业计划书
2014/02/01 职场文书
教师新年寄语
2014/04/03 职场文书
公司致全体员工的感谢信
2019/06/24 职场文书
七年级作文之冬景
2019/11/07 职场文书