【问题标题】:Initialising the flask-wtf form when the page loads页面加载时初始化flask-wtf表单
【发布时间】:2015-02-16 03:28:49
【问题描述】:

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

这就是表单的样子

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() 函数用于查询数据库并获取选项。

【问题讨论】:

    标签: python flask flask-wtforms


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢,这对我有用。你能指导我如何缓存数据吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-11
    • 1970-01-01
    • 2020-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多