Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 页面加载时初始化flask wtf表单_Python_Flask_Flask Wtforms - Fatal编程技术网

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

Python 页面加载时初始化flask wtf表单,python,flask,flask-wtforms,Python,Flask,Flask Wtforms,每当flask服务器启动时,所有表单都会在启动时进行初始化。数据在页面之间相互关联,因此对于一个表单,选项来自数据库,可以使用另一个页面上的另一个表单编辑这些选项,但在该页面上更新选项后,第一个表单的选项保持不变。要获取新值,我需要重新启动服务器。有没有办法在不重新启动服务器的情况下刷新值 这就是表单的外观 class AddExpenses(Form): reason = wtforms.StringField('reason', [validators.Required()]) amount

每当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')

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

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

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

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

谢谢,这对我很有用。你能告诉我如何缓存数据吗?