我在html文件中有一个多选,如下所示:
<select multiple id="mymultiselect" name="mymultiselect">
<option value="1">this</option>
<option value="2">that</option>
<option value="3">other thing</option>
</select>
当我访问flask/python中的mymultiselect字段时:
request.form['mymultiselect']
或者通过使用request.args.get函数,它只返回一个选定的项目。我已经了解到,要获得所有选定的项,我必须将[]添加到字段的名称中,如下所示:
<select multiple id="mymultiselect" name="mymultiselect[]">
<option value="1">this</option>
<option value="2">that</option>
<option value="3">other thing</option>
</select>
通过查看firebug中的post数据,我可以看到这是有效的,但是每当我尝试在flask/python中访问这个字段时,它都返回为null或None。
如何访问这些名称末尾带有"[]“的多选表单域?我也尝试过在python代码中将"[]“附加到字段名中,但似乎不起作用。
发布于 2020-02-10 19:06:29
您可以创建一个函数来获取字典形式的值
def __get_form_data(self, method='POST', compare_with=dict()):
# Get form MiniFieldStorage items
form = cgi.FieldStorage(fp=self.rfile, headers=self.headers, environ={ 'REQUEST_METHOD' : method })
# Convert to dictionary
return { key.rstrip('[]'):form.getlist(key) if key.endswith('[]') else form.getvalue(key) for key in form.keys() if compare_with.get(key)!=form.getvalue(key) }
https://stackoverflow.com/questions/12502646
复制相似问题