将表单值发布到 Flask 视图
在 Flask 应用程序中,如果出现以下情况,从客户端提交的 HTML 表单访问表单值可能会很困难:表单的输入元素缺少“name”属性。
问题:
当提交 HTML 表单时未为其输入指定“name”属性时,Flask 将返回一个空的 request.form 字典。出现这种情况是因为服务器无法将提交的值与特定的表单字段关联起来。
解决方案:
要使 Flask 能够正确访问表单值,请确保中的每个输入元素HTML 表单有一个唯一的“name”属性。该属性确定用于将提交的值与 Flask 视图中相应表单字段关联起来的键。
例如,考虑以下 HTML 表单:
<code class="html"><form method="POST"> <input id="my_input" type="text" value="{{ email }}"> <input id="my_submit" type="submit" value="Submit"> </form></code>
在相应的 Flask 视图中, request.form 字典将为空,因为表单的输入缺少“name”属性。要解决此问题,请向输入元素添加“name”属性:
<code class="html"><form method="POST"> <input name="my_input" id="my_input" type="text" value="{{ email }}"> <input id="my_submit" type="submit" value="Submit"> </form></code>
有了“name”属性,Flask 现在可以将提交的值与适当的表单字段关联起来。然后,您可以使用视图中的 request.form 字典访问表单值:
<code class="python">@app.route('/page', methods=['POST', 'GET']) def get_page(): if request.method == 'POST': print(request.form) # prints {'my_input': 'value'} print(request.form['my_input']) # prints 'value' return render_template('page.html')</code>
以上是当输入元素缺少“名称”属性时,如何在 Flask 视图中访问表单值?的详细内容。更多信息请关注PHP中文网其他相关文章!