如何获取表单提交的按钮名称?附Flask表单值获取示例代码
获取表单提交按钮的名称(Flask实现)
你已经搞定了获取表单里学校输入框值的逻辑,现在要获取提交按钮的名称/标识其实很简单,只需要给按钮加必要的属性,再在Flask后端读取对应的请求参数就行。
第一步:修改HTML表单,给提交按钮添加name和value属性
表单提交时,只有带name属性的控件才会被包含在POST请求数据里,所以得给提交按钮加上name(作为后端识别的键)和value(作为按钮的名称/功能标识)。修改你的表单代码如下:
<form class="w3-wide" action="/hschool" method="post"> <input list="hschools" name="hsname" autocomplete="off"> <datalist id="hschools"> <option value="hs1"> <option value="hs2"> </datalist> <!-- 给提交按钮添加name和value,后端通过name来取值,value就是按钮的名称标识 --> <input type="submit" name="submit_btn" value="确认提交学校"> </form>
要是页面有多个提交按钮(比如“保存”和“重置”),可以给它们设置相同的name但不同的value,这样就能区分用户点了哪个按钮:
<input type="submit" name="action" value="保存"> <input type="submit" name="action" value="重置">
第二步:在Flask后端获取按钮的信息
在你的Flask视图函数里,和获取hsname的方式类似,用request.form.get()读取按钮对应的参数:
from flask import Flask, request app = Flask(__name__) @app.route('/hschool', methods=['POST']) def handle_hschool(): # 获取之前的学校名称 hsname = request.form.get('hsname') # 获取提交按钮的value(也就是按钮的名称/标识) button_identifier = request.form.get('submit_btn') # 多按钮场景的判断示例 # action = request.form.get('action') # if action == '保存': # # 执行保存逻辑 # elif action == '重置': # # 执行重置逻辑 # 示例返回结果 return f"选中的学校: {hsname}, 点击的按钮: {button_identifier}" if __name__ == '__main__': app.run(debug=True)
小提醒:
- 用
request.form.get()而非直接request.form['submit_btn']是因为,如果表单没提交这个参数(比如用户通过其他方式提交),get()会返回None,不会抛出KeyError,更安全。 - 如果你只是需要按钮的
name属性值(比如上面的submit_btn),这个是你在HTML里定义好的固定值,直接在后端用这个字符串就行,但通常我们更关心用户点击的是哪个按钮,所以用value传递标识更实用。
内容的提问来源于stack exchange,提问作者MTT
相关产品推荐
相关产品推荐

