自定义过滤器仅适用于某些名称jinja2

时间:2016-02-09 12:25:18

标签: python flask jinja2

所以我尝试在jinja2和flask中使用自定义过滤器 所以这就是问题:

这是html文件

<h1>Hello, {{ user.nickname | reverse }}!</h1>

这是py文件

from app import app

def reverse_filter(s):
    return s[::-1]


app.jinja_env.filters['reverse'] = reverse_filter

上面的代码工作正常。但现在如果我将名称'reverse'更改为例如'''''

<h1>Hello, {{ user.nickname | mouse }}!</h1>

然后是新的py

from app import app

def mouse_filter(s):
    return s[::-1]


app.jinja_env.filters['mouse'] = mouse_filter

它会给我jinja2.exceptions.TemplateAssertionError: no filter named 'mouse'

真的很奇怪......我做错了吗?

1 个答案:

答案 0 :(得分:0)

我发现了这个错误, 我将我的过滤器放在我jinja_custom_filter.py文件的单独文件(__init__.py)中,所以我需要放

from app import jinja_custom_filter.py在我的init文件中可以使用它。

仍然不明白为什么我需要将每个参考文件都放在__init__.py