Flask-wtf
フラスコ– WTF
Webアプリケーションの重要な側面の1つは、ユーザーにユーザーインターフェイスを提供することです。 HTMLは <form> タグを提供します。これは、インターフェースの設計に使用されます。 テキスト入力、ラジオ、選択などの*フォーム*要素 適切に使用できます。
ユーザーが入力したデータは、GETメソッドまたはPOSTメソッドのいずれかによって、Httpリクエストメッセージの形式でサーバー側のスクリプトに送信されます。
- サーバー側のスクリプトは、http要求データからフォーム要素を再作成する必要があります。 したがって、実際には、フォーム要素を2回定義する必要があります(HTMLで1回、サーバー側スクリプトで1回)。
- HTMLフォームを使用する別の欠点は、フォーム要素を動的にレンダリングすることが(不可能ではないにしても)難しいことです。 HTML自体は、ユーザーの入力を検証する方法を提供しません。
ここで、柔軟なフォーム、レンダリング、および検証ライブラリである WTForms が役立ちます。 Flask-WTF拡張機能は、この WTForms ライブラリとのシンプルなインターフェースを提供します。
このHTMLの動的生成がどのように機能するかを見てみましょう。
まず、Flask-WTF拡張機能をインストールする必要があります。
インストール済みパッケージには Form クラスが含まれており、ユーザー定義フォームの親として使用する必要があります。
Sr.No | Standard Form Fields & Description |
---|---|
1 |
TextField <input type = 'text'> HTMLフォーム要素を表します |
2 |
BooleanField <input type = 'checkbox'> HTMLフォーム要素を表します |
3 |
DecimalField 数値を小数で表示するためのテキストフィールド |
4 |
IntegerField 整数を表示するためのTextField |
5 |
RadioField <input type = 'radio'> HTMLフォーム要素を表します |
6 |
SelectField 選択フォーム要素を表します |
7 |
TextAreaField <testarea> htmlフォーム要素を表します |
8 |
PasswordField <input type = 'password'> HTMLフォーム要素を表します |
9 |
SubmitField <input type = 'submit'>フォーム要素を表します |
たとえば、テキストフィールドを含むフォームは次のように設計することができます-
レンダリングされると、これは以下に示すように同等のHTMLスクリプトになります。
ユーザー定義フォームクラスはFlaskアプリケーションで使用され、フォームはテンプレートを使用してレンダリングされます。
WTFormsパッケージには、バリデータクラスも含まれています。 フォームフィールドに検証を適用するのに役立ちます。 次のリストは、一般的に使用されるバリデーターを示しています。
Sr.No | Validators Class & Description |
---|---|
1 |
DataRequired 入力フィールドが空かどうかを確認します |
2 |
フィールド内のテキストが電子メールIDの規則に従っているかどうかを確認します |
3 |
IPAddress 入力フィールドのIPアドレスを検証します |
4 |
Length 入力フィールドの文字列の長さが指定された範囲内にあるかどうかを検証します |
5 |
NumberRange 指定された範囲内の入力フィールドの数値を検証します |
6 |
URL 入力フィールドに入力されたURLを検証します |
連絡先フォームの name フィールドに 'DataRequired' 検証ルールを適用します。
フォームオブジェクトの* validate()*関数はフォームデータを検証し、検証が失敗した場合に検証エラーをスローします。 *エラー*メッセージがテンプレートに送信されます。 HTMLテンプレートでは、エラーメッセージは動的にレンダリングされます。
次の例は、上記の概念を示しています。 Contact form のデザインは、*(forms.py)*の下にあります。
バリデーターは Name および Email フィールドに適用されます。
以下は、Flaskアプリケーションスクリプト*(formexample.py)*です。
テンプレート*(contactl)*のスクリプトは次のとおりです-
Pythonシェルで formexample.py を実行し、URL http://localhost:5000/contact にアクセスします。 以下に示すように、 Contact フォームが表示されます。
エラーがある場合、ページは次のようになります-
エラーがない場合は、「成功」*がレンダリングされます。