已经向before询问了这个问题,但是被接受的解决方案(由问题发布者本人给出)说,我们可以直接将新的过滤器添加到jinja2.filter.FILTER中。
但是在jinja2 documentation中,建议将过滤器添加到环境中。
我正在 Pyramid 下开发一个应用程序,需要定义我的自定义过滤器并执行以下操作。
from jinja2 import Environment
#Define a new filter
def GetBitValue(num,place):
y = (num >> (place-1)) & 1
return y
env = Environment()
env.filters['getbitvalue'] = GetBitValue
该代码片段应放在何处?
我尝试将其放置在views文件中,但这显然行不通。
如果我将其放置在
__init__.py
中,如何确保jinja2将其拾取?我的意思是我该如何将env
发回 Pyramid 下的jinja2设置? 最佳答案
假设您正在使用 pyramid_jinja2
,则可以通过pyramid_jinja2.get_jinja2_environment()
实例使用configurator
来访问环境。
但是,显然您也可以register them via the pyramid config file而不直接访问env:
[app:yourapp]
# ... other stuff ...
jinja2.filters =
# ...
getbitvalue = your_package.your_subpackage:GetBitValue
关于python - 在 Pyramid 下的jinja2中添加自定义过滤器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10632232/