我正在尝试制作一个简单的表单,该表单通过使用Python2.7和Google App Engine在网页上显示相同的输入,并在本地运行的Google App Engrion在网页上显示相同的输入。我会遇到错误" http错误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)
当我运行上面的文件时,我会收到此消息:
URL"/testform"与任何处理程序不匹配。
我已经尝试在/testform URL中包含一个单独的处理程序:
handlers:
- url: /
script: test.app
- url: /testform
script: test.app
当我这样做时,我会收到以下消息:
Localhost目前无法处理此请求。 HTTP错误500
我也尝试更改/到。*以及app.yaml文件上的/。
handlers:
- url: .*
script: test.app
和:
handlers:
- url: /.*
script: test.app
具有相同的结果:
Localhost目前无法处理此请求。 HTTP错误500
将评论转换为答案,以免留下问题。
在您的初始版本app.yaml
文件中,您只有一个带有url: /
模式的处理程序。/testform
请求与此处理程序不匹配,该处理程序解释了初始错误消息:
URL"/testform"与任何处理程序不匹配。
所有随后的尝试都可以从处理程序映射的潜在映射中进行(我要缩短url: .*
,但这只是一个个人喜好,任何一个都应该这样做(,错误消息实际上更改为:
Localhost目前无法处理此请求。HTTP错误500
但是此错误具有不同的根本原因-resquest
vs request
在(现在正确映射的(TestHandler.get()
方法中。