Google App Engine 同一模型的获取与提交
我刚接触谷歌应用引擎和webapp,想要让一个简单的应用运行起来。这个应用是为了演示一个汽车租赁服务。我想要有一个请求处理器,用来添加新车,这个处理器需要同时处理添加汽车页面的get和post请求。
对于get请求,它应该返回一个表单,让用户填写并提交。而post请求则应该添加汽车(这部分我暂时不担心),然后返回一个类似的页面,里面有一个表单,并显示“汽车添加成功”或者类似的提示。
这是我的做法:
URL映射:
application = webapp.WSGIApplication([('/employee/add/car', AddCar)],
debug=True)
添加汽车的处理:
class AddCar(webapp.RequestHandler):
def get(self):
self.response.out.write(template.render('templates/addcar.html', {}))
def post(self):
self.response.out.write(template.render('templates/addcarsuccess.html', {}))
addcar.html 模板:
{% extends "base.html" %}
{% block body %}
<h2>Add a Car</h2>
<form action="/employee/add/car" method="post">
<label>Make</label>
<input type="text" name="make"></input>
<br/>
<input type="submit"></input>
</form>
{% endblock body %}
当我提交上面显示的表单时,我收到一个405 方法不允许
的响应。
我尝试在post函数中打印信息、抛出异常等,看看这个函数是否被调用,但看起来并没有。
我试着把post请求提取到一个单独的类中,这样似乎可以工作,但我更希望它们在同一个处理器中。
我希望我只是遗漏了一些简单的东西,这样我就能实现这个功能。
有什么想法吗?
谢谢。
1 个回答
3
我测试了你的代码,发现是正确的。我猜想你代码里的原始post
方法可能有一些缩进错误。