【问题标题】:Google App Engine get and post on the same modelGoogle App Engine 在同一模型上获取和发布
【发布时间】: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


【解决方案1】:

我已经测试了你的代码并且是正确的,我的猜测是你的代码中原来的post方法有一些缩进错误。

【讨论】:

  • 看起来是缩进。我用空格重写了它,它起作用了。我很惊讶它没有引发缩进异常。感谢您的快速回复。
  • @Jsch 它没有抛出缩进错误可能是因为由于缩进错误,post 方法被声明在get 方法体内。
猜你喜欢
  • 2015-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-19
  • 1970-01-01
相关资源
最近更新 更多