阿小信大人的头像
做你说过的,说你能做的 阿小信大人

Flask自定义模板过滤器2014-09-03 03:13

新建一个filter.py,放在适合自己import的地方

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
#!/usr/bin/env python

import re
from jinja2 import evalcontextfilter, Markup, escape

_paragraph_re = re.compile(r'(?:\r\n|\r|\n){2,}')

@evalcontextfilter
def nl2br(eval_ctx, value):
    result = u'\n\n'.join(u'<p>%s</p>' % p.replace('\n', '<br>\n')
                          for p in _paragraph_re.split(escape(value)))
    if eval_ctx.autoescape:
        result = Markup(result)
    return result

在app.py中加载

1
2
3
4
5
6
#!/usr/bin/env python

from filters import nl2br

app = Flask(__name__)
app.jinja_env.filters['nl2br']=nl2br

模板中使用

{{ question.question|nl2br }}

如果您觉得从我的分享中得到了帮助,并且希望我的博客持续发展下去,请点击支付宝捐赠,谢谢!

若非特别声明,文章均为阿小信的个人笔记,转载请注明出处。文章如有侵权内容,请联系我,我会及时删除。

#Python#   #flask
分享到:
阅读[2676] 评论[0]

你可能也感兴趣的文章推荐

本文最近访客

发表评论