我有一个 RadioField 表单项,它使用数据库中的字段值。
如果未创建数据库,我将无法启动 Flask Webserver,即使它只应在我转到该页面并加载该表单时访问数据库。
如果我在 Web 服务器运行时更新数据库,我看不到包含新数据库信息的表单。
直到我重新启动 Flask 网络服务器。
我怎样才能得到它,以便它在您访问页面时强制表单从数据库中重新加载其值。
我也很确定它将 RadioField 的值存储在内存中,因为我可以删除数据库并且 Flask Webserver 将继续运行并且 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)