URL / testform处理程序与任何处理程序都不匹配

时间:2018-02-20 16:34:30

标签: python-2.7 google-app-engine

我正在尝试制作一个简单的表单,它接收来自用户的输入并通过使用python2.7和本地运行的Google应用引擎在网页上显示相同的输入来响应。使用SublimeText。我收到错误 HTTP ERROR 500 并试图解决它,如下所示,但没有运气。

这是app.yaml文件:

runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /
script: test.app

这是测试文件:

import webapp2
form="""
<form action="/testform">
<input  name= "q">
<input type="submit">
</form>
"""

class MainPage(webapp2.RequestHandler):
    def get(self):
        self.response.out.write(form)

class TestHandler(webapp2.RequestHandler):
    def get(self):
        q = self.resquest.get("q")
        self.response.out.write(q)


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

当我运行上面的文件时,我会收到以下消息:

  

网址“/ testform”与任何处理程序都不匹配。

我已经尝试为/ testform URL包含一个单独的处理程序:

handlers:
- url: /
  script: test.app
- url: /testform
  script: test.app

当我这样做时,我会收到以下消息:

  

localhost目前无法处理此请求。   HTTP ERROR 500

我也尝试将/更改为。*以及app.yaml文件中的/.*来处理所有这样的URL:

handlers:
- url: .*
  script: test.app

handlers:
- url: /.*
  script: test.app

得到相同的结果:

  

localhost目前无法处理此请求。   HTTP ERROR 500

1 个答案:

答案 0 :(得分:1)

将评论转换为答案,不要让问题悬而未决。

在您app.yaml文件的初始版本中,您只有一个具有url: /模式的处理程序。 /testform请求与此单个处理程序不匹配,这解释了初始错误消息:

  

网址“/ testform”与任何处理程序都不匹配。

所有后续尝试都可以从处理程序映射预测中找到(我会选择url: .*,因为它更短,但这只是个人偏好,其中任何一个都应该这样做),错误消息实际上变为:

  

localhost目前无法处理此请求。 HTTP ERROR 500

但是这个错误有不同的根本原因 - (现在正确映射的)resquest方法中的request vs TestHandler.get()拼写错误。