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

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

最新文章

  1. Mysql存储过程和函数区别介绍
  2. 图片延迟加载jquery插件imgLazyLoading
  3. Android开发权威指南(第2版)新书发布
  4. 谏牲口TT十思疏
  5. Selenium中expected_conditions下text_to_be_present_in_element_value方法的使用
  6. Javascript原型链
  7. memcached完全剖析--1
  8. 解决 子进程已安装的 post-removal脚本返回了错误号 100 的方法
  9. java-Mysql-SQLServer数据类型匹配速查表
  10. XP 右键扩展设置 1.0 免费绿色版
  11. EL探索
  12. 最小截断[AHOI2009]
  13. myecplise自带的tomcat问题
  14. java数据结构与算法之栈(Stack)设计与实现
  15. HAWQ配置之客户端访问
  16. JSON序列——主从表查询
  17. oracle基础——内存管理、优化
  18. 【vue】项目编译报错‘npm ERR! **@**dev: `webpack-dev-server --inline --progress --config ’’
  19. javaBean分析
  20. C语言函数参数传递

热门文章

  1. linux系统查看某个用户错误登录次数
  2. Mac下安装配置NMP环境
  3. 使用go语言开发一个后端gin框架的web项目
  4. zencart简单设置分类链接不同css样式
  5. 在table中加入&lt;hr /&gt;标签为什么横线会跑到上边?
  6. 【洛谷P4552】IncDec Sequence
  7. k8sIngress资源
  8. nginx第三天
  9. JAVA基础编程之打印99乘法表
  10. CDOJ 图论专题 A.不是图论 强连通分量+拓扑排序 经典