我正在用AppEngine編寫一個簡單的應用程序。在用戶成功插入並重定向後,我想在下一頁顯示一條Flash確認消息。如何在AppEngine(Python)中的請求之間保持狀態?
在一個請求和下一個請求之間保持狀態的最佳方式是什麼?或者這是不可能的,因爲AppEngine是分佈式的?我想,潛在的問題是,AppEngine是否提供了一個持久的會話對象。
感謝
漢納斯
我正在用AppEngine編寫一個簡單的應用程序。在用戶成功插入並重定向後,我想在下一頁顯示一條Flash確認消息。如何在AppEngine(Python)中的請求之間保持狀態?
在一個請求和下一個請求之間保持狀態的最佳方式是什麼?或者這是不可能的,因爲AppEngine是分佈式的?我想,潛在的問題是,AppEngine是否提供了一個持久的會話對象。
感謝
漢納斯
沒有會話支持包含在應用程序引擎本身,而是你可以添加自己的會話支持。
GAE Utilities是專門爲此製作的一個庫;更重量級的選擇是通過App Engine Patch使用django會話。
可靠地保持請求之間狀態的方式是memcache,數據存儲或通過用戶(cookie或post/get)。
您也可以使用運行時緩存,但這是非常不可靠的,因爲您不知道請求是否會在相同的運行時中結束,或者如果運行時感覺像是它會丟棄整個緩存。
我真的不會使用運行時緩存,除非是非常特殊的情況,例如我用它緩存對象到json的序列化,因爲這很慢,如果緩存不存在,我可以輕鬆地重新生成結果。
啊,也許我回答的太快了。但是,這當然也適用於實施會議。 – 2009-09-10 17:56:50
Koen的權利,最簡單的方法是使用URL參數或cookie。只要確保您正確清理XSS和/或使用代碼映射到消息或其他東西。除此之外,使用memcache或數據存儲尋找自定義會話解決方案。 – RyanW 2009-09-11 03:22:27
另一個不錯的選擇是Beaker,它支持數據存儲,memcache和加密的cookie會話。 – 2009-09-11 07:32:46
太好了,謝謝! gaeutilities正是我正在尋找的! – Hannes 2009-09-11 08:25:00