所以我尝试在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'
真的很奇怪......我做错了吗?
答案 0 :(得分:0)
我发现了这个错误,
我将我的过滤器放在我jinja_custom_filter.py
文件的单独文件(__init__.py
)中,所以我需要放
from app import jinja_custom_filter.py
在我的init
文件中可以使用它。
仍然不明白为什么我需要将每个参考文件都放在__init__.py
中