【发布时间】:2011-05-07 20:50:15
【问题描述】:
我是 google app engine/webapp 的新手,正在尝试运行一个简单的应用程序。该应用程序将用于演示汽车租赁服务。我想要一个用于添加新车的请求处理程序,它可以处理添加汽车页面的获取和帖子。
get 应该返回一个要填写和提交的表单。帖子应该添加汽车(我还不担心这个),然后返回一个类似的页面,其中包含一个表格和“汽车成功添加”或类似的东西。
这是我的方法:
网址映射:
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 Method Not Allowed 响应。
我尝试在 post 函数中进行打印、引发异常等,只是为了查看它是否被调用并且看起来不像。
我尝试将帖子拉到一个单独的类中,这似乎可行,但我宁愿将它们放在同一个处理程序中。
我希望我错过了一些简单的东西,可以让我完成这个。
有什么想法吗?
谢谢。
【问题讨论】:
-
对我来说很合适。也许存在间距/缩进问题。您可以尝试将 post 方法移到 get 上方,看看行为是否有任何变化。
-
我将帖子移到 get 上方并开始在 get 函数中出现缩进错误。所以我用空格重写了它,它起作用了。谢谢。
标签: python google-app-engine web-applications