在 Jinja2 中使用“{{ field(class=...) }}”安全吗?

Is it safe to use "{{ field(class=...) }}" in Jinja2?

我正在使用 Flask/Wtforms/Jinja2,我不确定我是否正确理解 WTforms 中的这一部分:

If one wants to pass the “class” argument which is a reserved keyword in some python-based templating languages, one can do:

form.field(class_="text_blob")

很明显 form.field(class_="text_blob") 在模板中使用是安全的。但是 form.field(class="text_blob") 对我来说很好。

是不是说class在Jinja2中没有保留,我不需要关心?或者我应该将所有 class= 更正为 class_= 以防止可能出现的问题?

没错,class 不是 Jinja 中的保留字。它仍然可以用作 **kwargs 到 Python 的关键字参数,只是不能用代码编写。这就是 WTForms 支持这两种拼写的方式。

form.field(**{'class': 'text_blob'})