我正在开发一个用Python在Google App Engine上的在线投标系统。关于post-redirect-get机制,我已经搜索了一段时间,但仍然不清楚如何实现它。假设:
HTML:
<form action="/test" method="post">
...
<input type="submit" value="Submit" />
</form>Python:
# Collect data from the posted form
...
# Save data into datastore
...
# Prepare template values
tempalteValues = { ... }
path = os.path.join(os.path.dirname(__file__), 'templates/', 'responseMessage.html')
handler.response.out.write(template.render(path, templateValues))
# Then what?我有两个问题:
1)渲染响应消息文件后,下一步该怎么做?也就是说,如何实现“GET”?
这是可行的,甚至是正确的?
(注意:由于订单号是由系统生成的,因此必须在提交表单之前保存实体才能获得该编号)
提前谢谢。
发布于 2013-03-11 19:17:06
您正在寻找的是构建一个Restful服务,如下所示:
class BiddingHandler(webapp2.RequestHandler):
def get(self):
#Get code goes here for this handler
def post(self):
#code that gets your posted data and processes it
def delete(self):
#code to delete something
app = webapp2.WSGIApplication([('/bidding', BiddingHandler)])看一下上面的代码,如果你想在文章的最后一行做一个重定向,而不是呈现一个模板,你只需要用下面的代码将用户重定向到处理程序的get部分:
self.response.redirect('/bidding')我上面向你展示的是实现它的正确方法。对于每个请求,写入数据存储并从中读取将意味着更多的开销和成本。
https://stackoverflow.com/questions/15193988
复制相似问题