PythonでのFlaskアプリケーション(フォーム処理)
この記事の内容はPythonでのflaskアプリケーション(フォーム処理)に関するものですが、ある程度参考になる内容ですので、困っている方は参考にしていただければ幸いです。
1. Flask-WTF を使用する理由
リクエスト オブジェクトは、クライアントから送信されたすべてのリクエスト情報を公開します。特に、request.form は、POST リクエストによって送信されたフォーム データにアクセスできます。
Flask のリクエスト オブジェクトによって提供されるサポートは、Web フォームを処理するのに十分ですが、単調で反復的になる可能性のあるタスクがまだ多くあります。
フォーム HTML コードの生成と送信されたフォーム データの検証が 2 つの良い例です。
利点:
Flask-WTF 拡張機能により、Web フォームの処理がより快適になります。この拡張機能は、フレームワークに依存しない WTForms パッケージをラップする Flask 統合です。
2. フォーム処理とは何ですか?
Web ページでは、ユーザーと対話するためにいくつかのフォームが常に表示される必要があります。
flask は、flask がフォーム データの管理と操作を容易にするために、WTForm フォーム ライブラリを設計しました。
WTForm の最も重要な概念は次のとおりです:
1) Form クラス、開発者定義のフォームは、Form クラスまたはそのサブクラスから継承する必要があります。
Form クラスの主な機能は、それに含まれる Field クラスを通じてフォーム内のデータにすばやくアクセスできるようにすることです。
2). さまざまなフィールド クラス、つまりフィールド。一般に、各 Field クラスは入力 HTML タグに対応します。
たとえば、BooleanField など、WTForm に付属する一部の Field クラスは に対応し、
SubmitField は に対応します。等
3). バリデータークラス。このクラスは、ユーザーが入力したデータの有効性を検証するために使用されます。
たとえば、Length バリデーターは入力データの長さを検証するために使用でき、
FileAllowed はアップロードされたファイルのタイプを検証します。
さらに、csfr (クロスサイト リクエスト フォージェリ) 攻撃を防ぐために、flask では、flask-wtf を使用する前に、アプリがデフォルトで Secret_key を設定する必要があります。これを構成する最も簡単な方法は、app.config['SECRET_KEY'] = 'xxxx' を使用することです。
3. 共通フィールド クラス
PasswordField パスワード フィールド、入力を小さな黒い点に自動的に変換します。
DateField テキスト フィールド、形式要件は datetime です。日付は同じです
IntergerField テキスト フィールド、形式要件は整数です
DecimalField テキスト フィールド、形式要件は 10 進数と同じです。Decimal
FloatField テキスト フィールド、値は浮動小数点数です
BooleanField チェックボックス、値は True または Falseです
RadioField ラジオ ボタン ボックスのセット
SelectField ドロップダウン リストです。 Choices パラメータはドロップダウン オプションを決定しますが、HTML の
MultipleSelectField 複数のオプション値を含むドロップダウン リスト
Validator 検証関数
Validator は、フィールドを検証関数にバインドする検証関数です。その後、flask はフォームでデータを受信する前にデータを検証し、検証が成功するとデータを受信します。検証関数 Validator は次のとおりです。特定のバリデータには異なるパラメータが必要な場合があります。ここでは一般的に使用されるパラメータのみを示します。詳細な使用法については、wtforms/validators.py ファイルのソース コードを参照して、各バリデータ クラスに必要なパラメータを確認してください。 :
*基本的にすべてのバリデーターにはメッセージ パラメーターがあり、入力データがバリデーターの要件を満たさない場合にどのような情報が表示されるかを示します。
Email 電子メール アドレスの有効性を確認します。必要な通常のパターンは ^ です。 @(12 )$
EqualTo 2 つのフィールドを比較しますこの値は、通常、パスワードを 2 回入力するなどのシナリオで使用されます。パラメータ fieldname を記述することもできますが、これは同じ形式の別のフィールドのフィールド名を指す文字列変数であることに注意してください
IPAddress Verify IPv4アドレス、パラメータ デフォルトは ipv4=True、ipv6=False。 ipv6 を検証したい場合は、これら 2 つのパラメータを逆に設定できます。
長さ 入力文字列の長さを確認します。設定する長さの下限と上限を示すために、min と max の 2 つのパラメータを使用できます。パラメータのタイプは INT ではなく文字列であることに注意してください。 !
NumberRange 入力数値が範囲内にあるかどうかを確認するには、数値の上限と下限を示す 2 つのパラメーター min と max を使用できます。パラメーターのタイプは文字列ではなく、文字列であることに注意してください。 INT!! 次に、このバリデーターのメッセージ パラメーターに %(min)s と %( max)s の 2 つの書式設定部分を設定して、この範囲が何であるかをフロントエンドに伝えることができます。他のバリデーターにも同様のトリックがあるので、ソースコードを参照してください。
オプション 入力値がない場合、同じフィールド内の他の検証関数をスキップします。
必須 必須フィールド
Regexp 正規表現を使用して値を確認します。パラメータ regex='regexパターン' ###
URL URL を確認するには、必要な通常のパターンは ^[a-z] ://(?P
AnyOf 値がオプションの値のリストに含まれていることを確認してください。パラメータは値(オプションの値のリスト)です。特に、SelectField と組み合わせて使用する場合、SelectField の選択肢の項目の値を数値にできない理由がわかりません。 。そうしないと、AnyOf の value パラメーターに該当する数値があったとしても、現在のオプションが正当なオプションであると認識できません。 NoneOf にも同じトリックがあるのではないかと思います。
NoneOf 値がオプションの値のリストにないことを確認してください
#forms.py文件:用来设定规则 from flask_wtf import FlaskForm from flask_wtf.file import FileRequired, FileAllowed from wtforms import StringField, PasswordField, SubmitField, FileField from wtforms.validators import DataRequired, Length class LoginForm(FlaskForm): name = StringField( label="用户名/邮箱/手机号", validators=[ # DataRequired("请输入用户名"), Length(3, 20, message="长度不符"), ] ) passwd = PasswordField( label="密码", validators=[ # DataRequired("请输入密码"), Length(3, 20), ], ) file = FileField( label="简历", validators=[ FileRequired(), FileAllowed(['pdf', 'txt'], 'pdf 能被接收') ] )
#templates/demo/login.html nbsp;html> <meta> <title>Title</title>
#主程序 import random from flask import Flask, redirect, render_template from forms import LoginForm from flask_bootstrap import Bootstrap app = Flask(__name__) bootstrap = Bootstrap(app) app.config['SECRET_KEY'] = random._urandom(24) @app.route('/success/') def success(): return "success" @app.route('/login/', methods=('GET', 'POST')) def submit(): # 实例化表单对象; form = LoginForm() if form.validate_on_submit(): print(form.data) return redirect('/success/') return render_template('demo/login.html', form=form) app.run()
以上がPythonでのFlaskアプリケーション(フォーム処理)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

VSコードはPythonの書き込みに使用でき、Pythonアプリケーションを開発するための理想的なツールになる多くの機能を提供できます。ユーザーは以下を可能にします。Python拡張機能をインストールして、コードの完了、構文の強調表示、デバッグなどの関数を取得できます。デバッガーを使用して、コードを段階的に追跡し、エラーを見つけて修正します。バージョンコントロールのためにGitを統合します。コードフォーマットツールを使用して、コードの一貫性を維持します。糸くずツールを使用して、事前に潜在的な問題を発見します。

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

VSコードでは、次の手順を通じて端末でプログラムを実行できます。コードを準備し、統合端子を開き、コードディレクトリが端末作業ディレクトリと一致していることを確認します。プログラミング言語(pythonのpython your_file_name.pyなど)に従って実行コマンドを選択して、それが正常に実行されるかどうかを確認し、エラーを解決します。デバッガーを使用して、デバッグ効率を向上させます。

VSコードはWindows 8で実行できますが、エクスペリエンスは大きくない場合があります。まず、システムが最新のパッチに更新されていることを確認してから、システムアーキテクチャに一致するVSコードインストールパッケージをダウンロードして、プロンプトとしてインストールします。インストール後、一部の拡張機能はWindows 8と互換性があり、代替拡張機能を探すか、仮想マシンで新しいWindowsシステムを使用する必要があることに注意してください。必要な拡張機能をインストールして、適切に動作するかどうかを確認します。 Windows 8ではVSコードは実行可能ですが、開発エクスペリエンスとセキュリティを向上させるために、新しいWindowsシステムにアップグレードすることをお勧めします。

VSコード拡張機能は、悪意のあるコードの隠れ、脆弱性の活用、合法的な拡張機能としての自慰行為など、悪意のあるリスクを引き起こします。悪意のある拡張機能を識別する方法には、パブリッシャーのチェック、コメントの読み取り、コードのチェック、およびインストールに注意してください。セキュリティ対策には、セキュリティ認識、良好な習慣、定期的な更新、ウイルス対策ソフトウェアも含まれます。
