フォーム作成用のモジュール使用例

from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmitField
from wtforms.validators import DataRequired

ここでは文字列StringField,パスワード入力欄PasswordField,送信ボタンSubmitFieldのフィールドを作る.
その他で利用できるフィールドには様々なものがある.

  • チェックボックス:BooleanField
  • ラジオボタン:RadioField
  • ドロップダウンメニュー:SelectField
  • テキストエリア:TextAreaField
  • 日付:DateField

フォームのクラス作成例

class SampleForm(FlaskForm):
username = StringField('ユーザ名', validators=[DataRequired(), Length(max=100)])
password = PasswordField('バスワード', validators=[DataRequired(), Length(min=6, max=10)])
password_chk = PasswordField('パスワードをもう一度入力してください', validators=[DataRequired(), Length(min=6, max=10), EqualTo('password')])
submit = SubmitField('送信')

@app.route('/sample', methods=['GET', 'POST'])
def mysample():
form = SampleForm() # フォームのクラスを呼ぶ
if form.validate_on_submit():
# POST後の処理
return render_template('テンプレートファイル', form=form)

HTMLファイル

hidden_tag

{{ form.hidden_tag() }}

ユーザー名入力欄のサンプル

{{ form.username.label }}<br>
{{ form.username(size=32) }}<br>
<ul>
{% for error in form.username.errors %}
<li>{{ error }}</li>
{% endfor %}
</ul>

送信ボタン

{{ form.submit() }}