Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.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表单未使用sqlite3数据库更新_Python_Python 2.7_Flask_Flask Sqlalchemy_Flask Wtforms - Fatal编程技术网

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

Python Flask WTF表单未使用sqlite3数据库更新,python,python-2.7,flask,flask-sqlalchemy,flask-wtforms,Python,Python 2.7,Flask,Flask Sqlalchemy,Flask Wtforms,我有一个RadioField表单项,它使用数据库中的字段值 如果没有创建数据库,我就无法启动Flask Web服务器,即使它应该只在我转到该页面并加载该表单时访问数据库 如果在Web服务器运行时更新数据库,则看不到包含新数据库信息的表单 直到我重新启动Flask Web服务器 如何获取它,以便在您访问页面时强制表单从数据库重新加载其值 此外,我非常确定它正在内存中存储RadioField的值,因为我可以删除数据库,Flask Web服务器将继续运行,RadioField仍将显示 我正在使用sql

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

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

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

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

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

此外,我非常确定它正在内存中存储RadioField的值,因为我可以删除数据库,Flask Web服务器将继续运行,RadioField仍将显示

我正在使用sqlite3数据库,并使用APSW(另一个python sqlite3包装器)对其进行读写

这是我的表格

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

@app.route('/database', methods = ['GET', 'POST'])
def database():
    ''' displays the database and allows the user to select an entry '''
    form = DatabaseForm()
    if form.validate_on_submit():

        primaryKey = form.images.data
        primaryKey = int(primaryKey)


        myProgram.start(primaryKey)
        return render_template('simple.html', word = "SUCCESS")
    else:
        print form.errors

    return render_template('database.html', form=form)

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

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

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

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

    form = DatabaseForm()
    form.images.choices = [(str(x[0]), x) for x in listOfRows]
    if form.validate_on_submit():
通过在类上设置一次,选项仅在实例化类时设置,因此它们不会反映在特定进程的生命周期中所做的任何更改