从HTML表单发布值并在Flask视图中访问它们

时间:2014-09-04 20:19:51

标签: python html flask

我有一个HTML表单,可以发布到Flask路由。但是,request.form为空。如果我尝试通过id访问其中一个值,我会收到400错误。如何从HTML表单发布值并在Flask中访问它们?

<form method="POST">
  <input id="my_input" type="text" value="{{ email }}">
  <input id="my_submit" type="submit" value="Submit">
</form>
@app.route('/page', methods=['POST', 'GET'])
def get_page():
    if request.method == 'POST':
        print(request.form)  # prints ImmutableMultiDict([])
        print(request.form['my_input'])  # raises 400 error
    return render_template('page.html')

2 个答案:

答案 0 :(得分:8)

您的input没有name属性。这就是客户端将传递给服务器的内容。如果您访问未提交的表单密钥,Flask将引发400错误。

<input name="my_input" id="my_input" type="text" value="{{ email }}">

答案 1 :(得分:0)

您需要在Html页面中指定表单Action方法,然后在Tag中提及HTML文本框名称。

| Id | Created Date | Closed Date |
|----|--------------|-------------|
| 1  | 01/01/2020   | 01/02/2020  |
| 2  | 01/01/2020   | 01/03/2020  |
| 3  | 02/01/2020   |             |

在.py模块内部,使用HTML标记中指定的名称访问元素。

<form method="POST" action="/PythonFunctionName">
  <input id="my_input" type="text" name="HTMLControlName" value="{{ email }}">
  <input id="my_submit" type="submit" value="Submit">
</form>