ホームページ  >  記事  >  バックエンド開発  >  Flask-WTF を使用してフォーム検証を実装する方法

Flask-WTF を使用してフォーム検証を実装する方法

PHPz
PHPzオリジナル
2023-08-03 18:53:05844ブラウズ

Flask-WTF を使用してフォーム検証を実装する方法

Flask-WTF は、Web フォーム検証を処理するための Flask 拡張機能であり、ユーザーが送信したデータを検証するための簡潔かつ柔軟な方法を提供します。この記事では、Flask-WTF 拡張機能を使用してフォーム検証を実装する方法を説明します。

  1. Flask-WTF のインストール

Flask-WTF を使用するには、まずインストールする必要があります。 pip コマンドを使用してインストールできます。

pip install Flask-WTF
  1. 必要なモジュールをインポートする

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、およびいくつかの一般的に使用されるフィールドとバリデータが含まれます。

  1. フォーム クラスの作成

app.py ファイルで、FlaskForm から継承するフォーム クラスを作成します。各フォーム フィールドはクラスのプロパティとして定義され、適用されるバリデーターは validators パラメーターを介して指定できます。たとえば、次は単純なログイン フォーム クラスです:

class LoginForm(FlaskForm):
    username = StringField('用户名', validators=[DataRequired(), Length(min=4, max=20)])
    password = PasswordField('密码', validators=[DataRequired()])
    submit = SubmitField('登录')

このフォーム クラスには、ユーザー名フィールド、パスワード フィールド、および送信ボタンが含まれています。

  1. Flask アプリケーションの作成

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() メソッドが呼び出されます。検証に合格した場合は、ログイン ロジックを実行できます。そうでない場合は、フォーム ページが再レンダリングされ、検証エラー メッセージが表示されます。

  1. テンプレート ファイルの作成

ログイン フォームを表示するために、テンプレート フォルダーに 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 プロパティを通じて、フォーム フィールドと検証エラー メッセージをそれぞれ生成できます。

  1. アプリケーションの実行

次のコマンドを使用してアプリケーションを実行します。

python app.py

ブラウザで http://localhost:5000/login にアクセスします。 . ログインページをご覧ください。ユーザー名とパスワードを入力して送信ボタンをクリックすると、フォームデータが検証され、検証結果に基づいて処理されていることがわかります。

上記は、Flask-WTF を使用してフォーム検証を実装するための基本的な手順です。この方法により、ユーザーが送信したデータを簡単に検証して、その合法性と安全性を確保できます。それだけでなく、Flask-WTF は、ファイルのアップロード、多言語サポートなど、他の豊富な機能も提供します。この記事が役に立ち、Flask-WTF をより効果的に使用してフォーム検証を処理できるようになることを願っています。

以上がFlask-WTF を使用してフォーム検証を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。