Turbogears-crud-operations
TurboGears – CRUD操作
次のセッションメソッドはCRUD操作を実行します-
- * DBSession.add(model object)*-レコードをマップされたテーブルに挿入します。
- * DBSession.delete(model object)*-テーブルからレコードを削除します。
- * DBSession.query(model).all()*-テーブルからすべてのレコードを取得します(SELECTクエリに対応)。
フィルター属性を使用して、取得したレコードセットにフィルターを適用できます。 たとえば、studentsテーブルでcity = 'Hyderabad’のレコードを取得するには、次のステートメントを使用します-
ここで、コントローラーURLを介してモデルと対話する方法を確認します。
最初に、学生のデータを入力するためのToscaWidgetsフォームを設計しましょう
RootController(Helloアプリケーションのroot.py)で、次の関数マッピング「/add」URLを追加します-
次のHTMLコードを studentforml としてテンプレートフォルダーに保存します-
サーバーの起動後、ブラウザーに http://localhost:8080/add と入力します。 次の学生情報フォームがブラウザで開きます-
上記のフォームは、 ’/save_record’ URLに送信されるように設計されています。 したがって、* save_record()関数を公開するには、 *root.py に追加する必要があります。 studentformからのデータは、この関数によって* dict()*オブジェクトとして受信されます。 学生モデルの基礎となる学生テーブルに新しいレコードを追加するために使用されます。
追加に成功すると、ブラウザは ’/listrec’ URL にリダイレクトされます。 このURLは* listrec()関数*によって公開されます。 この関数は、studentテーブルのすべてのレコードを選択し、dictオブジェクトの形式でstudentlistlテンプレートに送信します。 この* listrec()*関数は次のとおりです-
studentlistlテンプレートは、py:forディレクティブを使用して、entries辞書オブジェクトを反復処理します。 studentlistlテンプレートは次のとおりです-
ここで http://localhost:8080/add に再度アクセスして、フォームにデータを入力します。 送信ボタンをクリックすると、ブラウザがstudentlistlに移動します。 また、「新しいレコードが正常に追加されました」というメッセージが点滅します。