Python 如何在google应用程序引擎模板上获取Cookie值

Python 如何在google应用程序引擎模板上获取Cookie值,python,google-app-engine,cookies,Python,Google App Engine,Cookies,我正在开发一个应用程序来学习python和Google应用程序引擎。我想从cookies中获取值,并在模板上打印以隐藏或显示某些内容 可能吗 什么样的会话系统最适合与google app engine一起使用 在gae和模板上使用会话的最佳方式是什么 如何使用模板验证Cookie的价值?请记住,Google App Engine是一个平台,而不是一个框架, 因此,您的问题是webapp2(GAE中使用的默认框架)是否 有一个很好的界面来处理cookies。即使框架没有 只要您有权访问 您可以访问

我正在开发一个应用程序来学习python和Google应用程序引擎。我想从cookies中获取值,并在模板上打印以隐藏或显示某些内容

可能吗

什么样的会话系统最适合与google app engine一起使用

在gae和模板上使用会话的最佳方式是什么


如何使用模板验证Cookie的价值?

请记住,Google App Engine是一个平台,而不是一个框架, 因此,您的问题是webapp2(GAE中使用的默认框架)是否 有一个很好的界面来处理cookies。即使框架没有 只要您有权访问 您可以访问Cookie的请求

这里有两个示例,一个使用webapp2 cookies接口,另一个使用 其他的只是使用Cookie头

webapp2:

class MyHandler(webapp2.RequestHandler):
    def get(self):
        show_alert = self.request.cookies.get("show_alert")
        ...
Cookie头(使用webapp2):

会话也是如此,不过要创建自己的会话库 更难的是,不管怎样,webapp2您已经介绍过:

from webapp2_extras import sessions

class MyBaseHandler(webapp2.RequestHandler):
    def dispatch(self):
        # get a session store for this request
        self.session_store = sessions.get_store(request=self.request)
        try:
            # dispatch the request
            webapp2.RequestHandler.dispatch(self)
        finally:
            # save all sessions
            self.session_store.save_sessions(self.response)

    @webapp2.cached_property
    def session(self):
        # returns a session using the backend more suitable for your app
        backend = "securecookie" # default
        backend = "datastore" # use app engine's datastore
        backend = "memcache" # use app engine's memcache
        return self.session_store.get_session(backend=backend)

class MyHandler(MyBaseHandler):
    def get(self):
        self.session["foo"] = "bar"
        foo = self.session.get("foo")
        ...
有关会话和cookie的更多信息,请参阅

关于您关于模板的问题,同样,您应该查看您使用的模板引擎的文档,并查找您需要了解的内容

from webapp2_extras import sessions

class MyBaseHandler(webapp2.RequestHandler):
    def dispatch(self):
        # get a session store for this request
        self.session_store = sessions.get_store(request=self.request)
        try:
            # dispatch the request
            webapp2.RequestHandler.dispatch(self)
        finally:
            # save all sessions
            self.session_store.save_sessions(self.response)

    @webapp2.cached_property
    def session(self):
        # returns a session using the backend more suitable for your app
        backend = "securecookie" # default
        backend = "datastore" # use app engine's datastore
        backend = "memcache" # use app engine's memcache
        return self.session_store.get_session(backend=backend)

class MyHandler(MyBaseHandler):
    def get(self):
        self.session["foo"] = "bar"
        foo = self.session.get("foo")
        ...