python - 如何在 Flask 中为动态生成的 jinja2 模板注册过滤器?

标签 python flask jinja2

我是 Flask 的新手。我正在尝试动态生成我的模板,以便我可以通过 AJAX 发出请求并将行附加到表中:

@app.template_filter('my_multiplier')
def my_multiplier(n):
  return n*10

@app.route('/')
def index():
  content = [1,2,3,4,5]
  tmplate = get_template()
  html = tmplate.render(content=content)
  return render_template('index.jinja2',html=html)


def get_template():
  html = Template(u'''\
    {% for n in conent %}
    <tr><td>{{ n | my_multiplier }}</td></tr>   
    {% endfor %}''')
  return html

我得到一个错误:TemplateAssertionError: no filter named 'my_multiplier'

我做错了什么? (如果我排除过滤器,模板呈现良好)

最佳答案

你注册过滤器了吗?

environment.filters['my_multiplier'] = my_multiplier

http://jinja.pocoo.org/docs/api/#custom-filters

希望这对您有所帮助!

关于python - 如何在 Flask 中为动态生成的 jinja2 模板注册过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21739773/

相关文章:

Ansible strip 空白

python - Python 中的插值作为预测

python - Flask-Babel 语言选择器

python - 如何在 Ansible 的 do-until 循环中指定多个条件

python - Flask 只能看到使用 curl 发送的多个参数中的第一个参数

python - 使用 Tesseract 4 - 来自 uwsgi-nginx-flask-docker 的 Docker 容器

ansible - 访问文件查找路径中的循环变量

python - pygdal 版本配置错误

python - 将构造和打印列表的嵌套 for 循环转换为递归函数

python - 我的所有 Python 模块都应该显式导入相同的基本模块吗?