我一直在尝试在 appengine 上做一个简单的 web 应用程序,但我遇到了处理程序的问题。 这是我的代码:
我的app.yaml文件:
application: test-app
version: 1
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /web/.*
script: AppWebInterface.application
我的AppWebInterface.py文件:
import webapp2
class MainPage(webapp2.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/plain'
self.response.write('Hello, World!')
application = webapp2.WSGIApplication([
('/', MainPage),
], debug=True)
当我运行 dev_server 并访问 localhost:8080/web 时,出现以下错误:
The url "/web" does not match any handlers.
最佳答案
我发现两个问题,一个掩盖了另一个。
首先,/web/.*
将匹配 /web/
、/web/foo
,但不匹配 /web
。有几种方法。一是使用
- url: /web.*
但这也将匹配 /webelos
。许多这对您来说不是问题,因为下一步会捕获它。
下一个问题是,将 /web/foo
传递给应用程序后,没有任何内容将该 url 模式映射到类。 WSGIAppliction
设置为处理 /
,但在 app.yaml
中给定处理程序的情况下,此类 URL 不会到达应用程序。
如果您在开始时遇到困难,请尝试将 app.yaml
中的处理程序更改为 - url:/
。进行一些简单的工作,然后从那里添加处理程序。
关于python - url "/web"与任何处理程序都不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19348246/