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处理python编码问题
Mar 13 Python
Python生成pdf文件的方法
Aug 04 Python
在Python中使用列表生成式的教程
Apr 27 Python
python xml.etree.ElementTree遍历xml所有节点实例详解
Dec 04 Python
Python使用pip安装报错:is not a supported wheel on this platform的解决方法
Jan 23 Python
十行代码使用Python写一个USB病毒
Jun 21 Python
python获取txt文件词向量过程详解
Jul 05 Python
python模块常用用法实例详解
Oct 17 Python
python 将视频 通过视频帧转换成时间实例
Apr 23 Python
PyQt5实现登录页面
May 30 Python
Python+Kepler.gl实现时间轮播地图过程解析
Jul 20 Python
python实现图片,视频人脸识别(opencv版)
Nov 18 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中的路径问题与set_include_path使用介绍
2014/02/11 PHP
PHP防盗链的基本思想 防盗链的设置方法
2015/09/25 PHP
教大家制作简单的php日历
2015/11/17 PHP
Yii2实现ajax上传图片插件用法
2016/04/28 PHP
php微信公众号开发模式详解
2016/11/28 PHP
Laravel 验证码认证学习记录小结
2019/12/20 PHP
jQuery bind事件使用详解
2011/05/05 Javascript
jQuery照片伸缩效果不影响其他元素的布局
2014/05/09 Javascript
jQuery中:animated选择器用法实例
2014/12/29 Javascript
解析javascript中鼠标滚轮事件
2015/05/26 Javascript
jQuery实现文本框输入同步的方法
2015/06/20 Javascript
JS+CSS实现的日本门户网站经典选项卡导航效果
2015/09/27 Javascript
微信QQ的二维码登录原理js代码解析
2016/06/23 Javascript
Ajax使用原生态JS验证用户名是否存在
2020/05/26 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(三)
2016/09/14 Javascript
移动端js图片查看器
2016/11/17 Javascript
AngularJS封装$http.post()实例详解
2017/05/06 Javascript
在Vue.js中使用Mixins的方法
2017/09/12 Javascript
jQuery选择器之属性过滤选择器详解
2017/09/28 jQuery
Vue 项目中遇到的跨域问题及解决方法(后台php)
2018/03/28 Javascript
微信小程序实现商品属性联动选择
2019/02/15 Javascript
深入浅析Vue 中 ref 的使用
2019/04/29 Javascript
vue如何实现自定义底部菜单栏
2019/07/01 Javascript
重命名批处理python脚本
2013/04/05 Python
python数组过滤实现方法
2015/07/27 Python
使用Python的package机制如何简化utils包设计详解
2017/12/11 Python
python模块smtplib学习
2018/05/22 Python
python3.6的venv模块使用详解
2018/08/01 Python
关于CSS Tooltips(鼠标经过时显示)的效果
2013/04/10 HTML / CSS
CSS Houdini实现动态波浪纹效果
2019/07/30 HTML / CSS
大学生表扬信范文
2014/01/09 职场文书
12.4法制宣传日活动总结
2014/08/26 职场文书
建筑技术负责人岗位职责
2015/04/13 职场文书
2019销售早会主持词
2019/06/27 职场文书
七年级作文之游记
2019/12/11 职场文书
redis实现共同好友的思路详解
2021/05/26 Redis