关于GAE的第一期

时间:2012-12-25 23:32:57

标签: python google-app-engine

我正在接近Google App Engine。 我想实现一些处理程序,但我得到一个“哎呀!这个链接似乎被打破了。”每个人的错误:

from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app


class MainPage(webapp.RequestHandler):


    def get(self):
        self.response.headers['Content-Type'] = 'text/plain'
        self.response.out.write('Hello, webapp World!')


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


def main():
    run_wsgi_app(application)

if __name__ == "__main__":
    main()

如果我使用简单的打印功能(即打印“2gf”),一切都会完美。 这是我的app.yaml文件:

application: sample-app
version: 1
runtime: python
api_version: 1

handlers:
- url: /aaa/aaa
  script: helloworld.py

- url: /bbb/bbb
  script: helloworld2.py

建议?

2 个答案:

答案 0 :(得分:3)

您的代码是旧的,yaml文件将python脚本/应用程序指向错误的URL。请尝试以下代码:

import webapp2

class HomePageHandler(webapp2.RequestHandler):
def get(self):
    self.response.headers['Content-Type'] = 'text/plain'
    self.response.write('Hello appengine!')

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

app.yaml文件应包含以下内容:

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

handlers:
- url: /.*
script: helloworld.py

另外,请仔细阅读以下App Engine python tutorial。它解释了App Engine编码的主要概念。我开始时它对我帮助很大。

答案 1 :(得分:0)

app.yaml中,您没有/的任何路由说明。因此,当您点击与YAML中已有的网址不匹配的网址时,您的应用会不知道该怎么做并向您显示该错误。为了解决这个问题,您需要为app.yaml中未指定的任何其他内容提供“默认”处理程序。正如@Tkingovr(他给他+1)所提到的,你想要将默认值(/.*)指向你的脚本。在app.yaml底部添加该处理程序,并将其指向主脚本。但是我同意@Tkingovr - 现在切换到2.7(当你第一次学习时)会让事情变得更容易:)