Pylons - 处理GET和POST请求
在我的Pylons应用中,处理表单POST数据的最佳方法是什么?我尝试过:
分开写一个GET方法和一个POST方法,并用rest.restrict('post')装饰器来限制POST请求。问题是,如果有验证错误,你就不能重新显示用户输入的数据,因为你必须重定向回GET方法,或者直接从POST方法渲染模板。这样做看起来很奇怪,因为URL必须改变以对应POST操作。
把所有内容放在一个方法里,通过检查request.method来判断表单是否被提交。这种方法可以用,但感觉有点笨拙,比如要写if request.method == 'post': ... else: ...。
1 个回答
2
把所有的东西放在一个方法里,然后通过检查请求的方法来判断表单是否被提交。这种做法可以,但感觉有点笨拙,比如要写 if request.method == 'post': ... else: ... 这样的代码。
我不明白你为什么觉得这样笨拙。根据请求的方法来处理是网络应用中一种常见的写法,很多编程语言都是这样做的。比如在Django框架中,会有一个视图根据 request.method
的不同来处理请求。在Java中,Servlet也有 doPost()
和 doGet()
这两个方法,分别用来处理 GET
和 POST
请求。
更新
如果可以的话,我更喜欢把它们分开成不同的方法。很多其他的网络框架都是这样做的。
这种做法也没有问题。我只是想说,把相同的方法用来处理不同的请求也是一种有效的方式。