如何使用Python获取表单中多选下拉框的提交值
如何使用Python获取表单提交的多选下拉框输入内容
对应的多选下拉框HTML代码示例如下:
<select name="files" multiple> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> </select>
带multiple属性的下拉框提交表单时,浏览器会将所有被选中项的value以同名参数多值的形式发送到后端,普通的单值读取方法只能拿到最后一个选中项,需要用对应框架的多值读取方法获取全部结果,不同常用Python Web框架的实现如下:
Flask框架
使用request.form的getlist()方法读取同名多值参数,返回结果为选中值组成的列表:from flask import Flask, request app = Flask(__name__) @app.route('/submit', methods=['POST']) def handle_form(): # 例:选中1、3、5时,selected_files值为['1', '3', '5'] selected_files = request.form.getlist('files') # 后续业务逻辑处理 return f"已选中的文件ID:{selected_files}"Django框架
同样使用getlist()方法从POST请求体中读取多值参数:def submit_view(request): if request.method == 'POST': selected_files = request.POST.getlist('files') # 后续业务逻辑处理 passFastAPI框架
声明表单参数时将类型标注为列表,FastAPI会自动组装所有选中值为列表传入:from fastapi import FastAPI, Form from typing import List app = FastAPI() @app.post('/submit') async def handle_form(files: List[str] = Form(...)): # files即为所有选中值组成的列表 return {"selected_files": files}
注意:如果表单带文件上传、使用
multipart/form-data编码提交,上述读取逻辑不需要调整。如果是前端通过AJAX发送JSON格式请求,直接从请求JSON体中读取对应键的数组值即可。
内容的提问来源于stack exchange,提问作者Nikita
相关产品推荐
相关产品推荐

