Flask-WTF を使用してフォーム検証を実装する方法
Flask-WTF は、Web フォーム検証を処理するための Flask 拡張機能であり、ユーザーが送信したデータを検証するための簡潔かつ柔軟な方法を提供します。この記事では、Flask-WTF 拡張機能を使用してフォーム検証を実装する方法を説明します。
Flask-WTF を使用するには、まずインストールする必要があります。 pip コマンドを使用してインストールできます。
pip install Flask-WTF
Flask アプリケーションで Flask-WTF を使用するには、いくつかのモジュールをインポートする必要があります。次のインポート ステートメントを app.py ファイルに追加します。
from flask import Flask, render_template, request from flask_wtf import FlaskForm from wtforms import StringField, PasswordField, SubmitField from wtforms.validators import DataRequired, Length
ここでインポートされるモジュールには、Flask、FlaskForm、およびいくつかの一般的に使用されるフィールドとバリデータが含まれます。
app.py ファイルで、FlaskForm から継承するフォーム クラスを作成します。各フォーム フィールドはクラスのプロパティとして定義され、適用されるバリデーターは validators パラメーターを介して指定できます。たとえば、次は単純なログイン フォーム クラスです:
class LoginForm(FlaskForm): username = StringField('用户名', validators=[DataRequired(), Length(min=4, max=20)]) password = PasswordField('密码', validators=[DataRequired()]) submit = SubmitField('登录')
このフォーム クラスには、ユーザー名フィールド、パスワード フィールド、および送信ボタンが含まれています。
Flask アプリケーションを作成し、ルーティング関数でフォームを使用します。例:
app = Flask(__name__) app.secret_key = 'your-secret-key' @app.route('/login', methods=['GET', 'POST']) def login(): form = LoginForm() if form.validate_on_submit(): # 表单验证通过 # 执行登录逻辑 return '登录成功' return render_template('login.html', form=form) if __name__ == '__main__': app.run()
この例では、ログイン フォームを表示する /login ルートを作成します。ユーザーがフォームを送信すると、検証のために validate_on_submit() メソッドが呼び出されます。検証に合格した場合は、ログイン ロジックを実行できます。そうでない場合は、フォーム ページが再レンダリングされ、検証エラー メッセージが表示されます。
ログイン フォームを表示するために、テンプレート フォルダーに login.html という名前のテンプレート ファイルを作成します。 Flask-WTF が提供する form 属性を使用して、フォーム HTML コードと検証エラー情報を生成できます。例:
<!DOCTYPE html> <html> <head> <title>登录</title> </head> <body> <h1>登录</h1> <form method="POST" action="{{ url_for('login') }}"> {{ form.csrf_token }} {{ form.username.label }} {{ form.username }} {% for error in form.username.errors %} <span style="color: red;">{{ error }}</span> {% endfor %} <br> {{ form.password.label }} {{ form.password }} {% for error in form.password.errors %} <span style="color: red;">{{ error }}</span> {% endfor %} <br> {{ form.submit }} </form> </body> </html>
このテンプレート ファイルでは、form.csrf_token を使用してクロスサイト リクエスト フォージェリ保護フィールドを生成します。フォーム フィールドと form.errors プロパティを通じて、フォーム フィールドと検証エラー メッセージをそれぞれ生成できます。
次のコマンドを使用してアプリケーションを実行します。
python app.py
ブラウザで http://localhost:5000/login にアクセスします。 . ログインページをご覧ください。ユーザー名とパスワードを入力して送信ボタンをクリックすると、フォームデータが検証され、検証結果に基づいて処理されていることがわかります。
上記は、Flask-WTF を使用してフォーム検証を実装するための基本的な手順です。この方法により、ユーザーが送信したデータを簡単に検証して、その合法性と安全性を確保できます。それだけでなく、Flask-WTF は、ファイルのアップロード、多言語サポートなど、他の豊富な機能も提供します。この記事が役に立ち、Flask-WTF をより効果的に使用してフォーム検証を処理できるようになることを願っています。
以上がFlask-WTF を使用してフォーム検証を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。