刚开始使用Google App Engine并受到空白页面的欢迎

时间:2014-07-31 05:49:51

标签: python google-app-engine

我目前在Udacity的CS253(网络开发)课程,我正在通过第二个作业项目(ROT13)网站。我注意到了这个讲座,我认为我对文件naisho.py中的代码有很好的掌握,这里是:

import webapp2
import codecs
import cgi

form = """
<form method="post">
    Tell me a secret...
    <br>
    <input type="text" name="secret" value="%(secret)s">

    <div style="color: red">%(error)s</div>

    <br>
    <br>

    <input type="submit">
</form>
"""

class MainPage(webapp2.RequestHandler):

    def process(s):
      return codecs.encode(s, "rot_13")

    def escape(s):
      return cgi.escape(s, quote = True)

    def write_form(self, error="", secret=""):
      self.response.out.write(form % {"error": error, 
                                      "secret": escape(secret)})

    def get(self):
        #self.response.headers['Content-Type'] = 'text/plain'
        self.write_form()

        #self.response.headers['Content-Type'] = 'text/plain'
        #self.response.write(self.request)

    def post(self):
        self.redirect('/thanks')

  class ThanksHandler(webapp2.RequestHandler):
    def get(self):
      n = process(secret)
      self.response.out.write(n)

    def escape(s):
      return cgi.escape(s, quote = True)

application = webapp2.WSGIApplication([
    ('/', MainPage), ('/thanks', ThanksHandler)], debug=True)
提供了

和文件app.yaml

application: naisho
version: 1
runtime: python27
api_version: 1
threadsafe: true

handlers:
- url: /.*
  script: naisho.application

我导航到终端中的文件夹(我使用OSX 10.9.3),输入dev_appserver.py --port=9999 .加载localhost:9999,但是当我将其加载到浏览器中时会得到一个空白页面。我完全不知道为什么。有人能指出我正确的方向,并可能指出我更好地诊断这些事情的参考方向?亲切地感谢大家。

1 个答案:

答案 0 :(得分:0)

首先,您的代码包含一些错误和缩进问题。

错误是转义和进程是类的方法,因此它们应该包含self作为它们的第一个参数,并被称为self.escape或self.process。另一种方法是将这些方法作为函数移出类。

一旦你这样做,在控制台中你不应该看到Stack Traces中隐藏的任何错误,除了恼人的303错误。

无论出于何种原因,我在开发服务器上运行时也会遇到303错误,但如果将其部署到App Engine实例,则可以顺利运行。

您可以尝试首先部署到App Engine,并查看他们的日志以捕获您的错误/缩进,因为它可以更容易发现它们。