Flask后端无法获取select表单提交值,返回null的问题求助
问题解决方法
错误原因
表单提交时,浏览器会使用输入控件的name属性作为参数键传递到后端,你的代码里前后端参数名不匹配:
- 前端下拉选择框的
name属性值为hero_list - 后端尝试从请求中获取的键为
hero_id
二者不一致导致后端找不到对应参数,request.form.get找不到键时默认返回None,序列化后就是null。
修复方案(二选一即可)
- 方案1(修改后端逻辑):将后端取值代码的参数名和前端保持一致
把原有代码:
hero_id = request.form.get('hero_id')
修改为:
hero_id = request.form.get('hero_list')
- 方案2(修改前端逻辑,更推荐,语义更统一):将前端下拉框的
name属性和后端参数名保持一致
把原有代码:
<select id="hero_list" name="hero_list">
修改为:
<select id="hero_list" name="hero_id">
额外优化建议
前端模板中option的value值建议用双引号包裹,避免值存在特殊字符时出现解析异常,修改为:
<option value="{{ hero.id }}">{{ hero.localized_name }}</option>
内容的提问来源于stack exchange,提问作者Jake Jackson
相关产品推荐
相关产品推荐

