Flask WTF表单未使用sqlite3数据库更新

2024-04-25 18:55:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个RadioField表单项,它使用数据库中的字段值。在

如果没有创建数据库,我就无法启动Flask Web服务器,即使它只应在我转到该页面并加载该表单时访问该数据库。在

如果在web服务器运行时更新数据库,则不会看到包含新数据库信息的表单。在

直到我重新启动Flask Web服务器。在

如何获取它,以便在您访问页面时强制窗体从数据库中重新加载其值。在

另外,我很确定它将RadioField的值存储在内存中,因为我可以删除数据库,Flask web服务器将继续运行,RadioField仍将显示。在

我正在使用一个sqlite3数据库,并使用APSW(另一个pythonsqlite3包装器)读写它

这是我的表格

class DatabaseForm(Form):
    listOfRows = db.getDatabase()
    rows = [(str(x[0]), x) for x in listOfRows]
    images = RadioField('images', validators = [Required()], choices = rows)

这是我的观点

^{pr2}$

Tags: 内存服务器web信息数据库flask表单页面
1条回答
网友
1楼 · 发布于 2024-04-25 18:55:48

您应该在视图中设置字段选项:

    form = DatabaseForm()
    form.images.choices = [(str(x[0]), x) for x in listOfRows]
    if form.validate_on_submit():

通过在类上设置它们一次,选项只在类实例化时设置,因此它们不会反映在特定进程的生存期内所做的任何更改。在

相关问题 更多 >