Appengine 1.7.4、webapp2、セッション。
セッションは、ドキュメントに示されているように構成されています: http://webapp-improved.appspot.com/api/webapp2_extras/sessions.html#webapp2_extras.sessions.SessionStore
# Some object
def post(self):
logging.error(self.session.get('cart')) #A 1 item
if '_put' in self.request.params:
return self.put()
cart = self.session.get('cart')
# add one item to cart
self.session['cart'] = cart
logging.error(self.session.get('cart')) #B OK, 2 items
return self.redirect(URL)
def put(self):
logging.error(self.session.get('cart')) #C 1 item?!
# some code
return self.redirect(URL)
AJAX によって送信される 2 つの POST 要求。
First without _put
- #A - returns 1 item - OK.
- #B - returns 2 items - OK.
Second, POST with _put.
- #A - returns 1 item - why? session was changed?
- #C - as above
リクエストは 1 つずつ実行されます (ユーザーが 1 回クリックすると、2 つのリクエストが実行されます)。なぜこれが起こっているのでしょうか?
最初のリクエスト (_put なし) のみを実行してページを更新すると、セッションは正しく保存されます。
webapp (1.x) と Python 2.5 からの移行後に問題が発生しました。
提案をありがとう。