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 07 Python
Django Admin实现三级联动的示例代码(省市区)
Jun 22 Python
解决Pycharm下面出现No R interpreter defined的问题
Oct 29 Python
python写一个随机点名软件的实例
Nov 28 Python
Python实现FLV视频拼接功能
Jan 21 Python
Python如何实现小程序 无限求和平均
Feb 18 Python
python使用turtle库绘制奥运五环
Feb 24 Python
Python带参数的装饰器运行原理解析
Jun 09 Python
Python变量及数据类型用法原理汇总
Aug 06 Python
python画图时设置分辨率和画布大小的实现(plt.figure())
Jan 08 Python
python 三边测量定位的实现代码
Apr 22 Python
Python虚拟环境virtualenv是如何使用的
Jun 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
简单易用的计数器(数据库)
2006/10/09 PHP
真正的ZIP文件操作类(php)
2007/07/21 PHP
php 过滤器实现代码
2010/08/09 PHP
php中file_get_content 和curl以及fopen 效率分析
2014/09/19 PHP
php中文繁体和简体相互转换的方法
2015/03/21 PHP
Nginx环境下PHP flush失效的解决方法
2016/10/19 PHP
PHP连接MySQL进行增、删、改、查操作
2017/02/19 PHP
MacOS下PHP7.1升级到PHP7.4.15的方法
2021/02/22 PHP
滚动经典最新话题[prototype框架]下编写
2006/10/03 Javascript
JavaScript 捕获窗口关闭事件
2009/07/26 Javascript
30个最好的jQuery 灯箱插件分享
2011/04/25 Javascript
用jQuery模拟页面加载进度条的实现代码
2011/12/19 Javascript
nodejs教程 安装express及配置app.js文件的详细步骤
2013/05/11 NodeJs
基于jquery实现一张图片点击鼠标放大再点缩小
2013/09/29 Javascript
使用js实现数据格式化
2014/12/03 Javascript
浅谈jQuery中的事件
2015/03/23 Javascript
JS基于Mootools实现的个性菜单效果代码
2015/10/21 Javascript
一个例子轻松学会Vue.js
2017/01/02 Javascript
node.js中 mysql 增删改查操作及async,await处理实例分析
2020/02/11 Javascript
[01:08:57]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第二场
2014/05/24 DOTA
在Python的gevent框架下执行异步的Solr查询的教程
2015/04/16 Python
Python读取Excel的方法实例分析
2015/07/11 Python
python 判断是否为正小数和正整数的实例
2017/07/23 Python
Python random模块用法解析及简单示例
2017/12/18 Python
python中使用paramiko模块并实现远程连接服务器执行上传下载功能
2020/02/29 Python
Django高并发负载均衡实现原理详解
2020/04/04 Python
浅谈Python3多线程之间的执行顺序问题
2020/05/02 Python
驴妈妈旅游网:中国新型的B2C旅游电子商务网站
2016/08/16 全球购物
Shopping happy life西班牙:以最优惠的价格提供最好的时尚配饰
2020/03/13 全球购物
副乡长民主生活会个人对照检查材料思想汇报
2014/10/01 职场文书
美容院合作经营协议书
2014/10/10 职场文书
小学家长通知书评语
2014/12/31 职场文书
作弊检讨书
2015/01/27 职场文书
2015年司机年终工作总结
2015/05/14 职场文书
土木工程毕业答辩开场白
2015/05/29 职场文书
Python基础之字符串格式化详解
2021/04/21 Python