gpt4 book ai didi

python - 自定义 Flask-WTF 或 WTForms

转载 作者:行者123 更新时间:2023-12-02 17:10:42 25 4
gpt4 key购买 nike

我正在尝试将 Flask 集成为我正在使用的 UI 的后端。

不幸的是,UI 已经为表单设置了 CSS 和 JavaScript(以适应 UI,但也适用于旧版本的 IE 和其他情况)。

我遇到的第一个问题是字段已经有了标签。如果我在模板中使用 .labels 属性:

{{ form.username.label }}

然后它会创建一个额外的标签,我似乎无法为 CSS/JavaScript 添加任何属性。但是,如果我关闭 .label 属性,则会在用户名输入上方创建一个额外的空白文本字段。

我的 forms.py 文件中的代码是:

class LoginForm(FlaskForm):
username = StringField('Username', validators=[DataRequired()])

我是不是漏掉了什么?

第二部分是向表单本身添加属性。我找到了如何使用 class_='classname' 添加 HTML class 属性,但是 Flask-WTF 和 WTForms 文档似乎没有涉及任何其他属性(例如 autcomplete="off"placholder="username")

有没有什么方法可以使用我刚刚缺少的 Flask-WTF 或 WTForms 来完成此操作?对于此类功能,我是否仅限于手动属性和/或 Jinja 宏?我无法想象这是 WTForms 和 Flask-WTF 中缺少的东西,但我也没有在文档或 Google/StackOverflow 的任何地方看到它被提及。

谢谢!

最佳答案

在这件事发生之后 WTForms : How to add "autofocus" attribute to a StringField我尝试对我的问题使用相同的方法。它奏效了。仍然不确定为什么 WTForms 或 Flask-WTForms 文档中没有涵盖这一点。

因此对于标签,要让它们包含类或您需要的其他属性,请在模板中添加它,与上面的 class_= 解释相同。

所以在这种情况下:

{{ form.username.label(class_="ie9") }}

在呈现时将适当的类添加到标签。

对于字符串输入,属性再次添加到模板中:

{{ form.username(class_="formplace", placeholder="Username", autocomplete="off", autofocus="true", size=32) }}

为字段中的类、占位符、自动完成、自动对焦和大小呈现适当的 HTML。

我确信这可以动态化并可重用,但我只是想展示解决方案,因为我不是唯一遇到此问题的人。具体来说,是 0xTim 的解决方案让我找到了一些可用的东西。

关于python - 自定义 Flask-WTF 或 WTForms,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49471831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com