'if request in request.params'的目的是什么?

时间:2014-06-08 07:25:48

标签: pyramid

我在一些例子中看过这段代码,但在提交表格时并不是这样。那是什么?

if 'submit' in request.POST:
  # blah

2 个答案:

答案 0 :(得分:2)

此检查的目的是告知表单是提交(POST)还是仅显示(GET) - 出于验证等原因,它通常是从相同的视图函数完成的,即使Pyramid允许为GET和POST请求注册一个单独的视图函数。

'submit'参数来自提交按钮的name属性:

<form ...>
...
<input type="submit" name="submit" value="Save your changes" />
</form>

说实话,我不喜欢这种方法,因为它依赖于以一种相当模糊的方式发送一个无用的名称/值对(你感到困惑,对吗?)。

作为替代方案,您可以尝试以下方法:

if request.method == 'POST':
    # save the data
else:
    # simply display the form

答案 1 :(得分:0)

您可以使用

查看所有请求正文
print request.params
#or just post request
print request.POST

如果您提交表格时不是真的,  确保您提出正确的请求(post)或尝试在提交按钮上设置属性name=submit