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 网络编程起步(Socket发送消息)
Sep 06 Python
在Python中使用模块的教程
Apr 27 Python
利用Hyperic调用Python实现进程守护
Jan 02 Python
python 用lambda函数替换for循环的方法
Jun 09 Python
详解如何用python实现一个简单下载器的服务端和客户端
Oct 28 Python
浅谈python3 构造函数和析构函数
Mar 12 Python
Python切片列表字符串如何实现切换
Aug 06 Python
Python timeit模块原理及使用方法
Oct 10 Python
python脚本定时发送邮件
Dec 22 Python
教你用python控制安卓手机
May 13 Python
pytorch锁死在dataloader(训练时卡死)
May 28 Python
Python捕获、播放和保存摄像头视频并提高视频清晰度和对比度
Apr 14 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
POST一个JSON格式的数据给Restful服务实例详解
2017/04/07 PHP
FormValid0.5版本发布,带ajax自定义验证例子
2007/08/17 Javascript
JavaScript.Encode手动解码技巧
2010/07/14 Javascript
js 处理数组重复元素示例代码
2013/12/27 Javascript
浏览器窗口加载和大小改变事件示例
2014/02/27 Javascript
jquery 为a标签绑定click事件示例代码
2014/06/23 Javascript
jQuery使用之标记元素属性用法实例
2015/01/19 Javascript
vue双向绑定的简单实现
2016/12/22 Javascript
Vue2.0 从零开始_环境搭建操作步骤
2017/06/14 Javascript
微信小程序图片自适应支持多图实例详解
2017/06/21 Javascript
在Debian(Raspberry Pi)树莓派上安装NodeJS的教程详解
2017/09/19 NodeJs
20行JS代码实现粘贴板复制功能
2018/02/06 Javascript
微信小程序实现时间预约功能
2018/11/27 Javascript
JavaScript 格式化数字、金额、千分位、保留几位小数、舍入舍去
2019/07/23 Javascript
JS实现小米轮播图
2020/09/21 Javascript
一行JavaScript代码如何实现瀑布流布局
2020/12/11 Javascript
[02:58]献给西雅图的情书_高清
2014/05/29 DOTA
python访问系统环境变量的方法
2015/04/29 Python
pandas 把数据写入txt文件每行固定写入一定数量的值方法
2018/12/28 Python
Python字符串中删除特定字符的方法
2020/01/15 Python
python实现引用其他路径包里面的模块
2020/03/09 Python
解决Pycharm双击图标启动不了的问题(JetBrains全家桶通用)
2020/08/07 Python
css3 仿写阿里云水纹效果的示例代码
2018/02/10 HTML / CSS
百思买加拿大:Best Buy Canada
2018/03/20 全球购物
NBA德国官方网上商店:NBA Store德国
2018/04/13 全球购物
家长给幼儿园的表扬信
2014/01/09 职场文书
能源工程专业应届生求职信
2014/03/01 职场文书
小班幼儿评语大全
2014/04/30 职场文书
药店促销活动策划方案
2014/08/24 职场文书
2014年人力资源部工作总结
2014/11/19 职场文书
学生检讨书怎么写
2015/05/07 职场文书
2016年元旦寄语
2015/08/17 职场文书
《棉鞋里的阳光》教学反思
2016/02/20 职场文书
python 多态 协议 鸭子类型详解
2021/11/27 Python
浅谈MySQL中的六种日志
2022/03/23 MySQL
Windows11 Insider Preview Build 25206今日发布 更新内容汇总
2022/09/23 数码科技