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中函数的多种格式和使用实例及小技巧
Apr 13 Python
Python实现优先级队列结构的方法详解
Jun 02 Python
Python编程argparse入门浅析
Feb 07 Python
python 字符串只保留汉字的方法
Nov 16 Python
Django如何防止定时任务并发浅析
May 14 Python
ubuntu 16.04下python版本切换的方法
Jun 14 Python
python实现控制COM口的示例
Jul 03 Python
nginx黑名单和django限速,最简单的防恶意请求方法分享
Aug 09 Python
python实现随机加减法生成器
Feb 24 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
Jun 01 Python
python中字典增加和删除使用方法
Sep 30 Python
五分钟学会怎么用python做一个简单的贪吃蛇
Jan 12 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 中dirname(_file_)讲解
2007/03/18 PHP
snoopy 强大的PHP采集类使用实例代码
2010/12/09 PHP
PHP实现通过CURL上传文件功能示例
2018/05/30 PHP
javascript笔试题目附答案@20081025_jb51.net
2008/10/26 Javascript
Javascript与jQuery方法的隐藏与显示
2015/01/19 Javascript
jQuery标签编辑插件Tagit使用指南
2015/04/21 Javascript
angularjs学习笔记之简单介绍
2015/09/26 Javascript
Bootstrap每天必学之媒体对象
2015/11/30 Javascript
关于function类中定义变量this的简单说明
2016/05/28 Javascript
浅谈原型对象的常用开发模式
2017/07/22 Javascript
JS 中document.write()的用法和清空的原因浅析
2017/12/04 Javascript
Vue多种方法实现表头和首列固定的示例代码
2018/02/02 Javascript
纯异步nodejs文件夹(目录)复制功能
2019/09/03 NodeJs
vue 递归组件的简单使用示例
2021/01/14 Vue.js
利用Python实现命令行版的火车票查看器
2016/08/05 Python
Python实现小数转化为百分数的格式化输出方法示例
2017/09/20 Python
Python算法之求n个节点不同二叉树个数
2017/10/27 Python
基于python中的TCP及UDP(详解)
2017/11/06 Python
python将回车作为输入内容的实例
2018/06/23 Python
浅谈Python3中strip()、lstrip()、rstrip()用法详解
2019/04/29 Python
python元组和字典的内建函数实例详解
2019/10/22 Python
浅谈tensorflow 中的图片读取和裁剪方式
2020/06/30 Python
Python实现列表索引批量删除的5种方法
2020/11/16 Python
在Python中实现字典反转案例
2020/12/05 Python
详解HTML5中的picture元素响应式处理图片
2018/01/03 HTML / CSS
台湾团购、宅配和优惠券:17Life
2017/08/14 全球购物
Subside Sports德国:足球球衣和球迷商品
2019/06/08 全球购物
应聘教师自荐信
2013/10/12 职场文书
《台湾的蝴蝶谷》教学反思
2014/02/20 职场文书
理工学院学生自我鉴定
2014/02/23 职场文书
超市开业庆典活动策划方案
2014/09/15 职场文书
学校党委副书记个人对照检查材料思想汇报
2014/09/28 职场文书
违反学校规则制度检讨书
2015/01/01 职场文书
公共场所卫生管理制度
2015/08/05 职场文书
Python可视化学习之matplotlib内置单颜色
2022/02/24 Python
Android自定义scrollview实现回弹效果
2022/04/01 Java/Android