我在谷歌应用引擎上有一个问题。我直接从Google App Engine复制了此代码,但不知何故它没有按预期工作。它总是给我错误:
self.redirect(self.create_login_url(self.request.uri))
AttributeError: 'MainHandler' object has no attribute 'create_login_url'
这是什么意思?
以下是我的代码
from google.appengine.api import users
import webapp2
class MainPage(webapp2.RequestHandler):
def get(self):
# [START get_current_user]
# Checks for active Google account session
user = users.get_current_user()
# [END get_current_user]
# [START if_user]
if user:
self.response.headers['Content-Type'] = 'text/plain'
self.response.write('Hello, ' + user.nickname())
# [END if_user]
# [START if_not_user]
else:
self.redirect(users.create_login_url(self.request.uri))
# [END if_not_user]
application = webapp2.WSGIApplication([
('/', MainPage),
], debug=True)
=============================================================================================
and my app.yaml
application: your-app-id
version: 1
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /.*
script: helloworld.application
答案 0 :(得分:0)
你的缩进看起来很糟糕。确保第def get(self):
行缩进超过行class MainPage(webapp2.RequestHandler):
class MainPage(webapp2.RequestHandler):
def get(self):
user = users.get_current_user()
if user:
self.response.headers['Content-Type'] = 'text/plain'
self.response.write('Hello, ' + user.nickname())
else:
self.redirect(users.create_login_url(self.request.uri))
application = webapp2.WSGIApplication([
('/', MainPage),
], debug=True)