我正在尝试制作一个简单的表单,它接收来自用户的输入并通过使用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
答案 0 :(得分:1)
将评论转换为答案,不要让问题悬而未决。
在您app.yaml
文件的初始版本中,您只有一个具有url: /
模式的处理程序。 /testform
请求与此单个处理程序不匹配,这解释了初始错误消息:
网址“/ testform”与任何处理程序都不匹配。
所有后续尝试都可以从处理程序映射预测中找到(我会选择url: .*
,因为它更短,但这只是个人偏好,其中任何一个都应该这样做),错误消息实际上变为:
localhost目前无法处理此请求。 HTTP ERROR 500
但是这个错误有不同的根本原因 - (现在正确映射的)resquest
方法中的request
vs TestHandler.get()
拼写错误。