Ruby on Railsには、flash[:notice]
とflash[:error
のようなメッセージを次の機会に表示する方法があります。ログインが失敗したなどの通知がリダイレクトされたとき(ログインページに戻ったときなど)に便利です。GAE(Python)にRailsの "flash"メッセージと同等のものがありますか?
Google App Engine(Python API)でこれを達成する標準的な方法がありますか? (Djangoが使用されてないであると仮定します。)
Ruby on Railsには、flash[:notice]
とflash[:error
のようなメッセージを次の機会に表示する方法があります。ログインが失敗したなどの通知がリダイレクトされたとき(ログインページに戻ったときなど)に便利です。GAE(Python)にRailsの "flash"メッセージと同等のものがありますか?
Google App Engine(Python API)でこれを達成する標準的な方法がありますか? (Djangoが使用されてないであると仮定します。)
テンプレートに関するllazzaroのアドバイスが好きです。
ストーリーの残りの部分は、リクエスト間でフラッシュメッセージを維持することができます。
セッションを処理する場合は、そのセッションにメッセージを貼り付けます。
セッションサポートがない場合は、Cookieを使用する必要があります。
クッキーはを警告:
あなたはフラッシュメッセージを表示する場合にかかわらず、すぐにセッションやクッキーからのメッセージをクリアします。
def add_flash(self, value, level=None, key='_flash'):
と::
Webapp framework、GAEに付属して、そのようなものを提供していない単純なWebアプリケーションフレームワーク。
のFlashのメッセージは、TipfyというメッセージをGoogle App Engine専用に作成したクールなフレームワークです。
はtipfy.ext.sessionモジュールの外観を持っている:
SET_FLASH(データ、キー=なし、 バックエンド=なし、** kwargsから)
は、フラッシュメッセージを設定します。フラッシュメッセージは、最初に読み込まれると削除されます。
テンプレートを拡張し、テンプレートに "flash"パラメータを設定するとどう思いますか?
例えば、ベーステンプレート:
<html... bla blah ...
<body ... bla blah
{% if flash %} {{flash}} {% endif %}
<!-- more html here -->
{% block content %}
your dynamic block here...
{% endblock %}
は今、すべてのテンプレート
{% extends "base_template.html" %}
{% block content %}
{% if object %} success to edit : {{object.title }} {% endif %}
{% endblock %}
であなたのハンドラは、テンプレートにフラッシュのparamを渡す必要があり、それがベーステンプレートで使用されます。
まあ、webapp2をを持っている
def get_flashes(self, key='_flash'):
をあなたのメッセージを格納し、読むときにそれらを削除されること。それらをユーザーに表示するには、基本要求ハンドラーrender_template
メソッドで変数を設定するだけです。
def render_template(self, template, context=None):
context = context or {}
extra_context = {
'uri_for': self.uri_for,
'flashes': self.session.get_flashes(),
'user': self.current_user,
}
# Only override extra context stuff if it's not set by the template:
for key, value in extra_context.items():
if key not in context:
context[key] = value
rendered = self.jinja2.render_template(template, **context)
self.response.write(rendered)
あなたのテンプレートでは、あなたのメッセージを表示するために 'フラッシュ'変数を使用します。ここ
ライブ例:https://simpleauth.appspot.com/
と例のソース:ところでhttp://code.google.com/p/gae-simpleauth/source/browse/example/handlers.py
、simpleauthアレックスとの素晴らしい作品!
はい、このオブジェクトでは、この機能get_flashes(key='_flash')[source]
を見て:class webapp2_extras.sessions.SessionDict(container, data=None, new=False)[source]
フラッシュメッセージを返します。フラッシュメッセージは、最初に読み込まれると削除されます。 パラメータ: key - セッションに格納されているフラッシュキーの名前。デフォルトは '_flash'です。 戻り値:
フラッシュに格納されたデータ、または空のリスト。
私はこのフレームワークを知りませんでした。 – llazzaro