问题标签 [flask-wtforms]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
630 浏览

python - 带有 wtforms 的烧瓶如何使用可插入视图或装饰器或其他改进我的代码?

我是一个新手程序员,在 GAE 上使用带有 wtforms 的烧瓶通过表单获取数据并列出数据。目前一切正常,但我的大多数观点都使用非常相似的表单创建、发布和列表方法。我想要一种方法来简化混乱并减少我使用的代码量。

我已经看到了三个潜在的选择:

  1. 来自 Flask 的可插入视图
  2. 只是一个简单的烧瓶装饰器
  3. 可能是方法视图?(见 1)。

目前我有一些 /new/post /new/home 等。

下面的相关代码片段: 视图:

楷模:

形式:

我在想一些更时尚的东西,比如:

当然,如果有更多可接受的方式(或没有办法解决这个问题)。我不是在寻找实际的代码,虽然一个例子会很好,但这是正确的设计方法?

0 投票
2 回答
19470 浏览

python - 当我将 POST 与 Flask 一起使用时,我遇到了 wtforms 选择字段的问题

我对 wtforms 和烧瓶很陌生,并且在使用 selectfields 时遇到了错误。表单本身在没有选择字段的情况下工作得很好,但有了它我得到以下错误:

错误:

我看到了选择字段,所以它正在被渲染。我怀疑在 POST 上没有正确验证 id 并且没有返回任何内容。或者它与我返回的选择字段元组有关?此外,我使用的 ID 字段是从 GAE 的 ndb 自动 key().id() 中提取的,它相当长且令人讨厌。可能是用于选择字段的 id 长度太长?

谷歌搜索并没有提供太多关于确切问题的信息,所以我想我会在这里发布。相关代码如下。如果我遗漏了什么,请告诉我

view.py 代码:

我的表格.py

new_post.html:

0 投票
1 回答
738 浏览

python - ListField 上的 WTForms 验证错误

我收到以下错误

ValidationError:ValidationError(值必须是['AL','CT','DE','FL'......'WY']之一:['state'])

但是当我在我的模型中时,我似乎无法弄清楚为什么它会验证该字段;

我很茫然,因为我虽然起初 require=false 意味着它会被忽略,其次 exclude 也让我认为它应该被忽略。为什么这个验证错误仍然发生(除了我没有在表格中填写它的事实)?有关更多上下文,可以在此处找到完整的 model.py 和 app.py

https://github.com/markbreneman/TroubleShooting/tree/master/SecondNatureWebsite

0 投票
0 回答
96 浏览

python - 使用选择字段属性作为 ndb 的关键关系的成本更低/最简洁的方法

我在为最后两个(传感器/读数)建模键/父母时遇到问题。我想为每个人保留祖先路径。问题是我只能访问层次结构中的最后一个 id。这是否需要我每次都进行复杂的查询,还是有更简单的方法?

无论如何,我试图保持的层次结构是:

主页 -> 区域 -> 传感器 -> 读数

为了测试它,我制作了一些表格。每个表单的选择字段是这样完成的:

我意识到使用 id/key 是不安全的,因为它以 html 形式显示,但我不知道如何做到这一点,除了一路散列 id。

我的问题是我不能使用从表单中选择的上述 ID 来查找区域密钥和父项,因为密钥由区域和主页密钥组成,我不知道它们是什么。通过以下方式查找区域

ndb.Key(Zone, ID) 似乎不起作用(因为密钥实际上包括 Homekey 而我不知道那里)。

我唯一的选择是做这样的查询:

并获取它的密钥并将其用作层次结构中下一级(传感器)的父级。

这似乎是一种昂贵且复杂的方式。有没有更简单、更优雅的方法来做到这一点?

这是我的测试和结果的图片。

我创建的区域表格

我创建的传感器表单(显示选择字段)

我创建的阅读表格

我在本地测试的输入列表。 显示主要功能

0 投票
1 回答
620 浏览

flask - 如何在flask-wtf中的小部件上设置属性?

我正在使用 Flask-WTF 提供的 TextArea。

我想将结果字段的 cols 更改为 80。我该如何做到这一点。我不想在模板中执行此操作,而是希望在表单中执行此操作。

Django 提供:

我想要类似的东西。

0 投票
1 回答
2268 浏览

python - 如何跟踪 Flask-WTF 中的表单字段变化?

我有成员字段的模型,如下所示:

我正在使用 Flask-WTFforms 使用此模型创建表单。在创建新团队时,用户将在表单中选择一些成员并保存。用户还可以编辑团队表单并对成员字段进行更改(可以添加或删除成员)。我想通过与之前存储在成员字段中的数据进行比较来检查添加或删除了多少成员。同样适用于其他领域。

我使用会话来实现这一点:

def 编辑团队(键):

这是处理这种情况的正确方法吗?感谢您的任何帮助..

0 投票
2 回答
12094 浏览

flask - 在 Jinja 模板中呈现 WTForms CheckboxInput

我似乎无法弄清楚如何CheckboxInput在我的模板中呈现 WTForms。当我尝试在我的 Jinja 模板中使用 Flask 渲染该字段时,我收到此错误:

TypeError: call () 需要 2 个参数(1 个给定)

该错误与{{ form.prefs(value='n') }}我的模板中的使用方式有关。WTForms 文档CheckBoxInput说“默认情况下 value= HTML 属性是 'y' ,除非 value= 在渲染时另行指定。” 无论我是否指定一个值,我都会收到错误消息。

我似乎找不到如何呈现简单 CheckBoxInput 的示例。任何帮助表示赞赏。

这是我的表格:

这是我的模板:

0 投票
1 回答
4354 浏览

python - Flask-WTForms:如何检查是否需要一个字段?

我通过以下方式定义了一个表单:

然后我在 Jinja2 中编写一个通用宏来呈现表单字段,我想做类似的事情:

那么......有没有办法查看是否需要一个字段?

0 投票
1 回答
1915 浏览

python - Flask-WTForms 测试(使用 py.test)

我正在使用flask 和flask-wtforms 构建一个应用程序,并且我正在为我的登录表单编写一个测试。

我这样做是这样的:

然而这不起作用,测试失败。通过一些调试,我发现登录表单总是返回,所以显然表单没有正确验证,我想。

我在运行测试时禁用了 CSRF。

有谁知道我做错了什么?

谢谢!

0 投票
2 回答
14270 浏览

python - Python Flask-WTF - 使用相同的表单模板进行添加和编辑操作

我刚刚开始使用 Flask / Flask-WTF / SQLAlchemy,我看到的大多数示例 CRUD 代码都显示了用于添加/编辑的单独模板。拥有两个具有几乎相同表单 html 的模板(例如,books_add.html、books_edit.html)似乎是重复的。从概念上讲,拥有一个模板(例如“books_form.html”)对我来说更有意义,并且只需从两个单独的路由定义中调用同一模板上的 render_template。我不太确定如何完成它,例如:

但我不确定我是否走在正确的轨道上,或者偏离了最佳实践。任何输入都值得赞赏 - 关于如何处理单个模板文件以处理添加或编辑行为的具体想法。也欢迎提供示例链接。

谢谢!