0

我有一个非常简单的 *.py 文件:

import webapp2

from google.appengine.api import users

class MainPage(webapp2.RequestHandler):
    def get(self):
       user = users.get_current_user()

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

app = webapp2.WSGIApplication([('/', MainPage)],
                          debug=True)

当我在本地运行它并单击“谷歌应用引擎启动器”上的浏览时,我在浏览器中看到一个空白屏幕,没有错误消息或任何东西。

同一文件中的此代码正在运行:

print 'Content-Type: text/plain'
print ''
print 'Hello, world!'

知道为什么吗?谢谢!汤姆。

4

3 回答 3

1

除了缺少导入之外,此代码没有任何问题:

import webapp2

它运行并显示:

你好,test@example.com

您还应该忘记Print在应用程序引擎中使用。它不是很有用。正如您在示例代码中所做的那样,将您的输出发送到响应中,或者使用logging

于 2012-12-20T12:34:01.790 回答
0

尝试

# -*- coding: utf-8 -*-
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.ext import deferred
from google.appengine.api import users

class MainPage(webapp.RequestHandler):
    def get(self, *args, **kwargs):
        user = users.get_current_user()
        if user:
            self.response.headers['Content-Type'] = 'text/plain'
            self.response.out.write('Hello, ' + user.nickname())
        else:
            self.redirect(users.create_login_url(self.request.uri))

application = webapp.WSGIApplication([
  (r'/(.*)', MainPage),
], debug=True)

def main():
  run_wsgi_app(application)

if __name__ == '__main__':
  main()

使用 app.yaml 之类的

application: test
version: 1
runtime: python27
api_version: 1
threadsafe: True

handlers:
- url: /.*
  script: test.application
于 2012-12-20T13:37:01.570 回答
0

您可能在连接 Google 登录 URL 时遇到问题,请尝试输入 response.write 以防用户不存在。

if user:
    ...
else:
    self.response.out.write('Hello, ' + user.nickname())
于 2012-12-21T12:52:34.907 回答