Pylons - 处理GET和POST请求

1 投票
1 回答
1081 浏览
提问于 2025-04-16 05:04

在我的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() 这两个方法,分别用来处理 GETPOST 请求。

更新

如果可以的话,我更喜欢把它们分开成不同的方法。很多其他的网络框架都是这样做的。

这种做法也没有问题。我只是想说,把相同的方法用来处理不同的请求也是一种有效的方式。

撰写回答