过滤器的本质就是函数,如果在模板中调用这个过滤器,那么就会将这个变量的值作为第一个参数传给过滤器函数,然后将函数的返回值作为滤器的返回值

1、在python文件中写好过滤的函数和逻辑
2、将将函数注册到模板过滤器中:@app.template_filter('过滤器名')
3、在模板中调用过滤器:变量|过滤器名

实现一个把‘hello’替换成''的过滤器

也可以改为模板里面自己设置要替换的内容

实现时间处理过滤器

返回time距离现在的时间是多久
1、如果时间间隔小于1分钟,就显示“刚刚”
2、如果时间间隔大于等于1分钟小于1小时,就显示“xx分钟前”
3、如果时间间隔大于等于1小时小于24小时,就显示“xx小时前”
4、如果时间间隔大于等于24小时小于30天,就显示“xx天前”
5、否则就显示具体的时间

@app.route('/')
def index():
data = {'time': datetime(2019, 11, 2, 16, 0, 0)}
return render_template('index.html', **data) @app.template_filter('time_handle')
def time_handle(time):
""" 返回time距离现在的时间是多久 """
if isinstance(time, datetime):
timestamp = (datetime.now() - time).total_seconds()
if timestamp < 60:
return '刚刚'
elif timestamp >= 60 and timestamp < 60 * 60:
return f'{int(timestamp / 60)}分钟前'
elif timestamp >= 60 * 60 and timestamp < 60 * 60 * 24:
return f'{int(timestamp / (60 * 60))}小时前'
elif timestamp >= 60 * 60 * 24 and timestamp < 60 * 60 * 24 * 30:
return f'{int(timestamp / (60 * 60 * 24))}天前'
else:
return time.strftime('%Y-%m-%d %H:%M')
else:
return time

十五:jinja2过滤器之实现自定义过滤器的更多相关文章

  1. 十四:jinja2过滤器之常用的过滤器

    1.abs:返回一个数的绝对值(见上一篇)2.default:如果当前变量没有值或字段,则展示默认值(见上一篇) 3.转义过滤器:如果后端出过来的值含html标签,可以控制是否视为html标签执行或者 ...

  2. asp.net core MVC 全局过滤器之ExceptionFilter异常过滤器(一)

    本系类将会讲解asp.net core MVC中的内置全局过滤器的使用,将分为以下章节 asp.net core MVC 过滤器之ExceptionFilter异常过滤器(一) asp.net cor ...

  3. Web Api 过滤器之 ExceptionFilter 异常过滤器

    一.服务器出现异常,会统一向客户端返回 500 的错误. [RoutePrefix("api/test")] public class TestController : ApiCo ...

  4. Hadoop案例(五)过滤日志及自定义日志输出路径(自定义OutputFormat)

    过滤日志及自定义日志输出路径(自定义OutputFormat) 1.需求分析 过滤输入的log日志中是否包含xyg (1)包含xyg的网站输出到e:/xyg.log (2)不包含xyg的网站输出到e: ...

  5. 十三:jinja2过滤器之default过滤器和or过滤器

    在模板里面有时候需要对传过来的数据进行一些处理,jinja2有一些内置的过滤器可以进行处理.类似于python内置函数,通过 “|” 进行使用,详见jinja2官方文档 使用方法:{{ 变量名|过滤器 ...

  6. Web Api 过滤器之 AuthorizationFilter 验证过滤器

    该过滤器是最先执行的过滤器,即使把它放在最后 API [MyActionFilter] [MyExceptionFilter] [MyAuthorize] public void Get() { Tr ...

  7. 从零开始学安全(三十五)●mysql 盲注手工自定义python脚本

    import requests import string #mysql 手动注入 通用脚本 适用盲注 可以跟具自己的需求更改 def home(): url="url" list ...

  8. hbase 自定义过滤器

    1.首先生成自定义过滤器,生成jar包,然后拷贝到服务器hbase目录的lib下. 1.1 自定义过滤器CustomFilter import com.google.protobuf.InvalidP ...

  9. asp.net core MVC 过滤器之ActionFilter过滤器(二)

    本系类将会讲解asp.net core MVC中的内置全局过滤器的使用,将分为以下章节 asp.net core MVC 过滤器之ExceptionFilter过滤器(一) asp.net core ...

随机推荐

  1. jQuery获取当前按钮的id

    function test(e) { $(e.target).attr('id') } // 记得带上点击事件

  2. python爬虫练习之批量下载zabbix文档

    # -*- coding: UTF-8 -*- import requests,re,time url = 'https://www.zabbix.com/documentation/3.4/zh/m ...

  3. ubuntu下安装tensorflow-gpu版本过程

    我之前已经安装了cpu-only版的tensorflow,所以现在要先把原先的tf卸载 sudo pip uninstall tensorflow sudo pip3 install tensorfl ...

  4. 第三次java测验1

    设计思想: 输入一个字符串,然后将字符串倒置,比较字符串第i位上的字符与倒数第i位上的字符是否相同,如果都相同则字符串是回文:否则字符串不是回文. 源代码: package java3; import ...

  5. HTML中的&nbsp; &ensp; &emsp; 等6种空格标记

    HTML提供了5种空格实体(space entity),它们拥有不同的宽度,非断行空格( )是常规空格的宽度,可运行于所有主流浏览器.其他几种空格(      ‌‍)在不同浏览器中宽度各异.   它叫 ...

  6. fedora29 安装mongodb 4.0,6问题记录

    如果运行mongod命令时提示 无加载共享库libcrypto.so.10,那就到页面下载http://www.rpmfind.net/linux/rpm2html/search.php?query= ...

  7. css-动画,a标签下,文字加下划线,而且动画是由中间向两边扩展开

    效果: html: <div class="warp"> <a class="welcome">期待您的参与</a> < ...

  8. Controllers的使用

    代码 angularjs.html <!doctype html> <html> <head> <meta charset="UTF-8" ...

  9. HDU 3669 [Cross the Wall] DP斜率优化

    问题分析 首先,如果一个人的\(w\)和\(h\)均小于另一个人,那么这个人显然可以被省略.如果我们将剩下的人按\(w[i]\)递增排序,那么\(h[i]\)就是递减. 之后我们考虑DP. 我们设\( ...

  10. Java基础__Java中常用数学类Math那些事

     测试 package Cynical_Gary; public class Cynical_Text { public static void main(String[] args){ System ...