request.form 为空的错误。

2015-11-06 12:25:25 +08:00
 lbfeng

两个 form 在一个 page 中。

<form action="/X/Y" method="post" class="form" role="form">
    <!--几个有 validator 的 input-->
    <input id="form1-submit" name="form1-submit" type="submit" value="Update1">

<form action="/X/Y" method="post" class="form" role="form">
    <!--几个有 validator 的 input-->
    <input id="form2-submit" name="form2-submit" type="submit" value="Update2">

想通过 request.form['form1_2-submit']来判断提交的是哪个 form 。但不知道为什么 request.form 为空,只能能得到 400 bad 。

3399 次点击
所在节点    Flask
4 条回复
Kilerd
2015-11-06 13:21:44 +08:00
is_form1 = request.form.get('form1-submit', None)
if(is_form1):
# do with Form1
else:
# do with Form2
lbfeng
2015-11-06 13:39:37 +08:00
@Kilerd 问题解决了。请问为什么 request.form['form1_2-submit'],会返回 400 呢?
killpanda
2015-11-06 14:03:30 +08:00
通常用 request.form.get(key) 会比 request.form[key] 更好,因为后者如果没有这个 key ,会抛异常。(印象中,不一定对
Kilerd
2015-11-06 19:12:22 +08:00
@lbfeng error 400 的意思是 执行语句出错。导致程序无法执行

当提交 form2 的时候 form1 无法读取。

你在执行的时候用 debug 模式就会报告出什么错了

```python

app.run(host='0.0.0.0', debug=True)

```

然后再去执行你的代码,就知道 400error 到底出现在哪里

BTW, 习惯用 aaa.get('bbb') 来代替 aaa['bbb'] 的写法

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/234124

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX