Jinja2'-'变量,错误?

nov*_*vox 1 python jinja2 flask

我正在烧瓶中开始我的第一步,我正在尝试使用wtf形式制作自定义html标签

当我使用这个:

{{form.email(data-trigger="hover")}}
Run Code Online (Sandbox Code Playgroud)

我懂了:

jinja2.exceptions.TemplateSyntaxError: expected token ',', got '='
Run Code Online (Sandbox Code Playgroud)

没有它,一切正常:

{{form.email(datatrigger="hover")}}
Run Code Online (Sandbox Code Playgroud)

有什么办法可以解决?

Ale*_*lli 5

Python中的标识符(包括Jinja2中嵌入的Python代码段)可以包括字母,下划线和数字(并且不能以数字开头)。

其他标点符号,包括破折号,是不是在允许的标识符(不是一个Python的特点-很多其他语言究竟有什么在标识符允许同一词法规则)。

因此没有,有没有方法来“修复”的Python,让你有一个破折号(它是由Python需要一个“减”运算符)的标识符内。你为什么要呢?您不能使用下划线代替吗?

  • 在这种情况下,可以使用下划线,因为 WTForms 在呈现“input”标签时会将下划线转换为连字符。`form.email(data_trigger='...')` 将变为 `<input data-trigger="..." ... >`。 (2认同)