我正在接近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
建议?
答案 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(当你第一次学习时)会让事情变得更容易:)