2

データベースのフィールドの値を使用する RadioField フォーム アイテムがあります。

データベースが作成されていない場合、そのページに移動してそのフォームをロードしたときにのみデータベースにアクセスする必要がありますが、Flask Web サーバーを起動できません。

Web サーバーの実行中にデータベースを更新すると、新しいデータベース情報を含むフォームが表示されません。

Flask Webサーバーを再起動するまで。

ページにアクセスしたときにフォームがデータベースから値をリロードするようにするにはどうすればよいですか。

また、データベースを削除でき、Flask Webserver が引き続き実行され、RadioField が引き続き表示されるため、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)
4

1 に答える 1

5

ビューでフィールドの選択肢を設定する必要があります。

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

クラスに一度設定すると、オプションはクラスがインスタンス化されたときにのみ設定されるため、その特定のプロセスの存続期間中に行われた変更は反映されません。

于 2013-02-01T09:09:47.180 に答える