python全栈开发flask模块方法补充:python的flask自定义过滤器

作者:Davidszhou   来源:SEO优化博客   时间:2017-11-13 06:01:37   点击:

python的flask自定义过滤器
今天在做flask后台开发中,遇到时间处理的问题:信息列表中需要调用时间,数据库中都是存放的时间戳,需要做时间格式化。
如果一个列表循环一次做时间格式化更新这个办法不可行,浪费!
只能在jinja模板里面做时间处理,这里用到jinja的注册过滤器
jinja的内置过滤器清单,这里就不一一列举出来了, 可以翻一下jinja的手册里面都有。
jinja的自定义注册过滤器有两种方法分别是(代码来自官方手册):
第一种: template_filter() 装饰器
@app.template_filter('reverse')
def reverse_filter(s):
    return s[::-1]
第二种: jinja_env
def reverse_filter(s):
    return s[::-1]
app.jinja_env.filters['reverse'] = reverse_filter
使用方法:
{% for x in mylist | reverse %}
{% endfor %}
以下是自己写的自定义过滤器,使用第一种方法,简单直观:
# 时间自定义过滤器
@app.template_filter()
def formatdata(v1,v2="%Y-%m-%d %H-%M:%S"):
    a = time.localtime(v1)
    return str(v1)+str(v2)  #这里输出自定义过滤器两个参数结构
    # return time.strftime(v2,a) #这里输出格式化的时间日期
html模板:
①直接使用默认的时间格式
{{ x['addtime']|formatdata }}
②自定义一个时间格式
{{ x['addtime']|formatdata("%Y-%m-%d") }}
看运行结果:
第一张是正常运行的结果图:

python全栈开发flask模块方法补充:python的flask自定义过滤器
第二张是输出参数构造的图:

python全栈开发flask模块方法补充:python的flask自定义过滤器
第三张是修改自定义的时间格式的图:

python全栈开发flask模块方法补充:python的flask自定义过滤器
从以上可以知道,自定义过滤器的参数结构是怎么样的?
例如在过滤器 {{ 42|myfilter(23) }} 中,函数被以 myfilter(42, 23) 调用

TAGS:python , flask , template_filter , jinja_env , 全栈开发

来自Davids zhou博客原创文章请尊重作者:http://www.zongk.com/zongk/105.html转载请标注此链接

网站统计
文章总数:129
今天发布:0
软件资源数:18