在页面加载时初始化 flask-wtf 表单

Initialising the flask-wtf form when the page loads

每当启动 flask 服务器时,所有的表单都会在那时自行初始化。数据在页面之间互连,因此对于一个表单,选项来自数据库,可以使用另一个页面上的另一个表单编辑这些选项,但在该页面上更新选项后,第一个表单的选项保持不变。要获得新值,我需要重新启动服务器。有什么方法可以在不重启服务器的情况下刷新这些值吗?

表格是这样的

class AddExpenses(Form):
reason = wtforms.StringField('reason', [validators.Required()])
amount = wtforms.IntegerField('amount', [validators.Required()])
allnames = []
allnames = getSalesman()
salesperson = wtforms.SelectField('salesperson', choices=[names for names in allnames])
submitfield = wtforms.SubmitField('Submit')

getSalesman() 函数用于查询数据库并获取选项。

为什么不在需要表单的视图函数中获取选项?例如

@app.route('/index')
def index():
    form = AddExpenses()
    allnames = getSalesman()
    form.salesperson.choices = [names for names in allnames]
    ...

如果数据库不经常更改,您可能还想在 getSalesman() 上使用一些缓存。