Turbogears-flash-messages
TurboGears –フラッシュメッセージ
TurboGearsは、目立たない方法でユーザーに情報を通知するための非常に便利なメッセージングシステムを提供します。 tgモジュールのTGFlashクラスは、プレーンCookieに保存されているメッセージのフラッシュをサポートします。 このクラスは、JavaScriptを介したクライアント側だけでなくサーバー側でのフラッシュメッセージの取得をサポートします。
TGFlashクラスの* render()メソッドをPython自体から使用する場合、テンプレートから呼び出してフラッシュメッセージをレンダリングできます。 JavaScriptで使用する場合、WebFlashオブジェクトを提供します。 * payload()*および render()*メソッドを公開して、現在のフラッシュメッセージを取得し、JavaScriptからレンダリングします。
「クイックスタート」を使用してTurboGearsプロジェクトを作成すると、Masterlテンプレートが作成されます。 そのFlashオブジェクトの変数の定義が含まれています。 コントローラから受信したこのフラッシュメッセージの内容は、このテンプレート内のマークされたプレースホルダーを置き換えます。
Flashメッセージは、* tg.flash()*メソッドを使用して、Cookie(デフォルトではwebflash)に保存されます。 その後、メッセージとステータスパラメータがそれに渡されます。
フラッシュと呼ばれるメソッドがリダイレクトを実行する場合、リダイレクトされたページ内にフラッシュが表示されます。 メソッドがテンプレートを直接公開する場合、フラッシュはテンプレート自体の内部に表示されます。
ステータスコードにCSSスタイルを適用することにより、フラッシュメッセージの外観をカスタマイズできます。 「クイックスタート」プロジェクトには、スタイルシートpublic/css/style.cssによってカスタマイズされたエラー、警告、情報、およびOKステータスコードが含まれます。 スタイル付きのステータスコードを追加することもできます。
この外部スタイルシートは、テンプレートに含める必要があります-
Flashメッセージサポートの構成は、TGFlashオブジェクトのconfigure()メソッドのパラメーターを設定するか、app_cfg.py(configフォルダー内)でパラメーターを設定することで実現できます。 設定可能なパラメータは次のとおりです-
Sr.No. | Parameters & Description |
---|---|
1 |
flash.cookie_name フラッシュメッセージの保存に使用されるCookieの名前。 デフォルトは webflash です。 |
2 |
flash.default_status 指定しない場合のデフォルトのメッセージステータス(デフォルトでOK) |
3 |
flash.template レンダリング時に* flashテンプレート*として使用されます。 |
4 |
flash.allow_html
|
5 |
JavaScriptからフラッシュを表示するときに実行されるJavaScriptコード。 デフォルトは* webflash.render()*です |
6 |
flash.js_template
|
- * pop_payload()-関数*現在のフラッシュメッセージ、ステータス、および関連情報を取得します。 フラッシュメッセージを取得すると、Cookieが削除されます。
- * render(container_id、use_js = True)*-テンプレート内のフラッシュメッセージをレンダリングするか、Javascriptサポートを提供します。
- container_id はメッセージが表示されるDIVであり、use_jsはフラッシュをHTMLとしてレンダリングするかJavaScriptを使用するかを切り替えます。
- status -現在のフラッシュステータスのみを取得し、フラッシュステータスを取得するとCookieが削除されます。
- メッセージ-現在のフラッシュメッセージのみを取得し、フラッシュメッセージを取得するとCookieが削除されます。
シンプルなFlashメッセージを作成する方法は?
次の例では、ルートコントローラークラスでflash()メソッドが提供されています。 公開されたテンプレートflashlにレンダリングされるflash()メッセージを呼び出します
テンプレートフォルダーに flashl を作成するためのコードは次のとおりです。
サーバーを起動し、ブラウザーに http://localhost:8080/flash?user = MVL と入力します
URLを http://localhost:8080/flash に変更し、style.cssの定義に従って異なる形式のフラッシュメッセージを確認します。