gpt4 book ai didi

python - 处理具有多个选择选项的表单

转载 作者:太空宇宙 更新时间:2023-11-04 10:51:14 24 4
gpt4 key购买 nike

我有一个包含选择框的 CGI 脚本,最终用户可以在其中提交多个选项或仅提交一个选项。这个选择标签被命名为“parameters”。看这里的例子....

http://www.w3schools.com/tags/tryit.asp?filename=tryhtml_select_multiple

当提交此表单并选择多个选项时,URL 看起来像这样......

http........mycgiscript.py?parameters=option1value&parameters=option2values

或者如果用户只选择了一个选项,它看起来像这样......

http........mycgiscript.py?parameters=option3value

我的表单声明为...

import cgi
form = cgi.FieldStorage()

所以当用户选择多个选项并提交表单时,form['parameters']的数据类型是一个列表,而当用户只选择一个选项并提交时,form['parameters']的数据类型] 是一个实例...

多个选项(以列表形式返回):

[MiniFieldStorage('parameters', 'option1value'), MiniFieldStorage('parameters', 'option2value')] 

单一选项(作为实例返回):

MiniFieldStorage('parameters', 'option3value') 

我的问题是......

由于 form['parameters'] 可以是列表或实例,具体取决于用户提交的内容;处理这两种数据类型的最佳方法是什么?我想要的输出是一个列表变量,其中包含在表单上选择的 optionsXvalues。到目前为止,我能做的最好的就是这个......

if type(form['parameters']) == type([]):
l = [ x.value for x in form['parameters'] ]
else:
l = [form['parameters'].value]

我这样做是因为当用户选择多个选项时,简单地使用 form['parameters'].value 会产生以下异常。

AttributeError: 'list' object has no attribute 'value'

那么有没有比我上面基于 if/else 语句的建议更好的方法呢?我希望你们中的一些 python 大师能够提出更好的方法来做到这一点。

最佳答案

你可以做的是使用:

form.getlist('参数')

这提供了具有相同名称(即参数)的所有不同输入类型的值。

这是我从 http://docs.python.org/2/library/cgi.html 收集到的在 20.2.2 中,他们建议当您期望可能有多个具有相同名称字段的项目时就是这种情况。

希望这对您有所帮助,尽管我认为您自己已经找到了。

关于python - 处理具有多个选择选项的表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13744623/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com