我有一个非常简单的* .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)
当我在本地运行它并点击'google app engine launcher'上的浏览时,我在浏览器中看到一个空白屏幕,没有任何错误消息或任何内容。
这个代码在同一个文件中正常工作:
print 'Content-Type: text/plain'
print ''
print 'Hello, world!'
任何想法为什么? 谢谢!汤姆。
答案 0 :(得分:1)
此代码没有任何问题,除了缺少导入:
import webapp2
它运行并显示:
您好,test @ example.com
您还应该忘记在应用引擎中使用Print
。它不是很有用。像在示例代码中一样将输出发送到响应,或使用logging。
答案 1 :(得分: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
答案 2 :(得分:0)
您可能在使用Google登录网址时遇到问题,请尝试在用户不存在时设置response.write。
if user:
...
else:
self.response.out.write('Hello, ' + user.nickname())