WTFormsとJinja2を使用してFlaskで異なるフォームを作成したいとします。フィールドの型を持つmysqlを呼び出します。FlaskのWTformでダイナミックフィールドを作成する
だから、すなわちテーブルは次のようになります。
form_id | type | key | options | default_value
1 | TextField | title | | test1
1 | SelectField | gender |{'male','female'}|
2 | TextAreaField| text | | Hello, World!
それから私はform_idに問い合わせます。返される行のフィールドを持つWTformsを持つフォームを作成する必要があります。私は、通常のフォームの
:フォームがポストバックされている場合、私は、空のフォームを作成し、その後にフィールドを追加することです最善だと思うclass MyForm(Form):
title = TextField('test1', [validators.Length(min=4, max=25)])
gender = SelectField('', choices=['male','female'])
def update_form(request):
form = MyForm(request.form)
if request.method == 'POST' and form.validate():
title = form.title.data
gender = form.gender.data
#do some updates with data
return .....
else:
return render_template('template.html',form)
#here should be something like:
#dict = query_mysql()
#new_form = MyForm(dict);
#render_template('template.html',new_form)
forループ、しかし、私はどのように検証することができます私はクラスでそれを定義していない場合フォーム?フォームにform_idがあるので、それを生成して検証することができます。