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爬虫之pandas基本安装与使用方法示例
Aug 08 Python
python实现微信小程序自动回复
Sep 10 Python
Python模拟浏览器上传文件脚本的方法(Multipart/form-data格式)
Oct 22 Python
简单了解python单例模式的几种写法
Jul 01 Python
python flask几分钟实现web服务的例子
Jul 26 Python
Python 最强编辑器详细使用指南(PyCharm )
Sep 16 Python
python程序 线程队列queue使用方法解析
Sep 23 Python
python 循环数据赋值实例
Dec 02 Python
简述python Scrapy框架
Aug 17 Python
windows+vscode安装paddleOCR运行环境的步骤
Nov 11 Python
matplotlib部件之套索Lasso的使用
Feb 24 Python
理解python中装饰器的作用
Jul 21 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验证手机号码
2015/11/11 PHP
用Laravel Sms实现laravel短信验证码的发送的实现
2018/11/29 PHP
thinkphp5框架API token身份验证功能示例
2019/05/21 PHP
如何简单地用YUI做JavaScript动画
2007/03/10 Javascript
JQuery 将元素显示在屏幕的中央的代码
2010/02/27 Javascript
JS解决url传值出现中文乱码的另类办法
2013/04/08 Javascript
js实现的map方法示例代码
2014/01/13 Javascript
jquery获取颜色在ie和ff下的区别示例介绍
2014/03/28 Javascript
jquery实现表单验证并阻止非法提交
2015/07/09 Javascript
js调出上下文菜单的实例
2015/12/17 Javascript
js点击文本框弹出可选择的checkbox复选框
2016/02/03 Javascript
JS防止网页被嵌入iframe框架的方法分析
2016/09/13 Javascript
基于Bootstrap和jQuery构建前端分页工具实例代码
2016/11/23 Javascript
简单谈谈Javascript函数中的arguments
2017/02/09 Javascript
微信{"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}
2018/10/12 Javascript
JS二级菜单不同实现方法分析【4种方法】
2018/12/21 Javascript
Layui Table js 模拟选中checkbox的例子
2019/09/03 Javascript
Vue实现跑马灯效果
2020/05/25 Javascript
vue使用vant中的checkbox实现全选功能
2020/11/17 Vue.js
[09:34]2018DOTA2国际邀请赛寻真——永不放弃的iG
2018/08/14 DOTA
Python的Asyncore异步Socket模块及实现端口转发的例子
2016/06/14 Python
Python基础练习之用户登录实现代码分享
2017/11/08 Python
Python 数据处理库 pandas进阶教程
2018/04/21 Python
python实现俄罗斯方块游戏
2020/03/25 Python
pycharm下查看python的变量类型和变量内容的方法
2018/06/26 Python
Python中的字符串切片(截取字符串)的详解
2019/05/15 Python
数据库连接池的工作原理
2012/09/26 面试题
料理师求职信
2014/01/30 职场文书
小松树教学反思
2014/02/11 职场文书
数学检讨书1000字
2014/02/24 职场文书
函授毕业生自我鉴定范文
2014/03/25 职场文书
科技活动周标语
2014/10/08 职场文书
企业财务管理制度范本
2015/08/04 职场文书
生日寿星公答谢词
2015/09/29 职场文书
golang操作rocketmq的示例代码
2022/04/06 Golang
python数字图像处理之对比度与亮度调整示例
2022/06/28 Python