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關於模板的建議。
故事的另一半是能夠維持請求之間的Flash消息。
如果您正在處理會話,請將該消息粘貼到會話中。
如果您沒有會話支持,則必須創建使用cookie。
餅乾警告:
無論如何,當你顯示的提示信息,立即清除從會話或cookie中的消息。
Webapp framework,GAE附帶的簡單Web應用程序框架沒有提供類似的東西。
專爲Google App Engine構建的一個酷炫框架,它提供Flash消息是Tipfy。
,看一下tipfy.ext.session模塊:
set_flash(數據,鍵=無, 後端=無,** kwargs)
設置一個閃光燈消息。 Flash消息在第一次讀取時被刪除。
您如何看待擴展模板並將「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 %}
處理程序應該通過閃存參數去模板
,它將在基本模板中使用。
好,而webapp2確實有:
def add_flash(self, value, level=None, key='_flash'):
和:
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]
返回一個提示信息。 Flash消息在第一次讀取時被刪除。 參數: key - 存儲在會話中的閃存密鑰的名稱。默認是'_flash'。 返回:
存儲在閃存中的數據或空列表。
我不知道這個框架,它似乎很酷! – llazzaro 2011-02-09 04:38:03