在App Engine上使用Python2.7时,是否可以引用每个请求全局变量?

时间:2012-06-24 21:36:28

标签: python google-app-engine

我正在使用Python2.7运行时,清单中的threadsafe设置为false。

我可以安全吗

user = users.get_current_user()

一旦位于脚本的顶部,在全局空间中,并在各种处理程序中引用它而没有任何命名空间问题?

1 个答案:

答案 0 :(得分:4)

最好创建一个基类,在那里添加一些函数,然后从基类扩展所有处理程序,因为get_current_user()与请求处理程序有关,只在那里有意义。

以下是一个例子:

import webapp2
from google.appengine.api import users

class BaseHandler(webapp2.RequestHandler):
  def get_user(self):
    #Maybe also adding some logic here or returning your own User model
    return users.get_current_user()


class MainPage(BaseHandler):
  def get(self):
    if self.get_user():
      self.response.headers['Content-Type'] = 'text/plain'
      self.response.out.write('Hello, ' + self.get_user().nickname())
    else:
      self.redirect(users.create_login_url(self.request.uri))