Web2py-forms-validators
Web2py-フォームとバリデーター
web2pyには、フォーム生成のための強力な機能が付属しています。 web2pyでフォームを構築する4つの異なる方法は次のとおりです-
- FORM -HTMLヘルパーに関しては、低レベルの実装と見なされます。 FORMオブジェクトは、そのフィールドの内容を認識しています。
- SQLFORM -既存のデータベースに対して、作成、更新、削除の機能を提供します。
- SQLFORM.factory -SQLFORMに類似したフォームを生成するSQLFORMの最上位の抽象化レイヤーと見なされます。 ここでは、新しいデータベースを作成する必要はありません。
- * CRUDメソッド*-名前が示すように、SQLFORMに基づいた同様の機能を持つCreate、Retrieve、Update、Delete機能を提供します。
FORM
ユーザーからの入力を受け入れ、応答を送信するための「送信」ボタンを備えたアプリケーションを考えます。
コントローラ
「default.py」コントローラには、次の関連関数が含まれます
View
関連するビュー「default/display_forml」は、HTMLでのフォームの表示を次のようにレンダリングします-
上記の例は、ユーザー入力を要求する通常のHTMLフォームです。 FORMオブジェクトのようなヘルパーを使用して、同じフォームを生成できます。
コントローラ
「default.py」コントローラーの上記の関数には、フォームの作成に役立つFORMオブジェクト(HTMLヘルパー)が含まれています。
View
ステートメント \ {\ {= form}} によって生成されるフォームは、FORMオブジェクトをシリアル化します。 ユーザーがフォームに入力して送信ボタンをクリックすると、フォームが自己送信し、変数 request.vars.value とその入力値が下部に表示されます。
SQLFORM
既存のデータベースへのフォームの作成に役立ちます。 その実装手順を以下に説明します。
DALを使用してデータベースとの接続を確立します。これは、DALコンストラクターとも呼ばれるDALオブジェクトを使用して作成されます。 接続を確立した後、ユーザーはそれぞれのテーブルを作成できます。
したがって、「employee」という名前のテーブルを作成しました。 コントローラは、次のステートメントでフォームとボタンを構築します-
したがって、作成された従業員テーブルの場合、コントローラの変更は次のようになります-
フォーム内のすべてのタグには、テーブル名とフィールド名から派生した名前があります。
SQLFORMはプロセスメソッドも使用します。これは、ユーザーが関連するSQLFORMで値を保持する場合に必要です。
- form.process(keepvalues = True)*の場合、受け入れられます。
例
SQLFORM.factory
場合によっては、ユーザーは、データベースを実装せずに既存のデータベーステーブルがあるようにフォームを生成する必要があります。 ユーザーは、単にSQLFORM機能を利用したいだけです。
これは form.factory を介して行われ、セッションで維持されます。
フォームはSQLFORMのように表示され、フィールドとして名前と画像が表示されますが、データベースにはそのような既存のテーブルはありません。
「default/form_from_factoryl」ビューは次のように表されます-
CRUDメソッド
CRUDは、web2pyの他のAPIと比較して、公開されていません。したがって、インポートする必要があります。
上記で定義されたCRUDオブジェクトは、次のAPIを提供します-
Sr.No | API & Functionality |
---|---|
1 |
crud.tables() データベースで定義されているテーブルのリストを返します。 |
2 |
crud.create(db.tablename)
|
3 |
crud.read(db.tablename, id)
|
4 |
crud.delete(db.tablename, id) レコードを削除します |
5 |
crud.select(db.tablename, query) テーブルから選択されたレコードのリストを返します。 |
6 |
crud.search(db.tablename) フォームが検索フォームであるタプル(フォーム、レコード)を返します。 |
7 |
crud() request.args()に基づいて上記のいずれかを返します。 |
フォームの作成
フォームを作成しましょう。 以下のコードに従ってください。
モデル
アプリケーションの models フォルダーの下に新しいモデルが作成されます。 ファイルの名前は*“ dynamic_search.py” *になります。
コントローラ
関連付けられたファイル、すなわち*「dynamic_search.py」*のコントローラセクションには、次のコードが含まれます-
View
次のビューでこれをレンダリングできます。
ここにそれがどのように見えるかです-