如何为HTML下拉选框命名并将值传递至Python文件?
解决方案
嘿,这事儿和你之前给输入框命名传值的逻辑完全相通,只需要给<select>标签加上一个name属性,就能把选中选项的值作为变量传递到Python脚本啦!
1. 修改HTML代码
给<select>标签添加name属性(比如我这里用selected_car作为名称,你可以根据需求改成自己想要的变量名),修改后的完整代码如下:
<html> <title> rapor </title> <body> <h1> rapor </h1> <form method="post" action="/cgi-bin/sil3.py"> <select name="selected_car"> <option value="volvo">Volvo</option> <option value="saab">Saab</option> <option value="mercedes">Mercedes</option> <option value="audi">Audi</option> </select> <input type="submit" value="send"> </form> </body> </html>
这里的关键是name="selected_car"——表单提交时,选中选项的value值(比如用户选了Volvo,就会传volvo)会以selected_car为键,和表单数据一起发送到sil3.py。
2. 在Python脚本中获取变量
和你之前处理ds、df的方式一样,用cgi模块的FieldStorage来获取这个值。示例代码如下:
#!/usr/bin/env python3 import cgi # 处理表单数据 form = cgi.FieldStorage() # 获取下拉框选中的值 selected_car = form.getvalue('selected_car') # 后续可以对这个值进行处理,比如打印或者写入文件 print("Content-type:text/html\r\n\r\n") print(f"<html><body>你选中的汽车是: {selected_car}</body></html>")
简单解释下:
form.getvalue('selected_car')就是通过你给select设置的name属性,拿到用户选中的选项对应的value值。- 如果用户没选任何选项(不过这里下拉框默认会选中第一个选项),
getvalue会返回None,你可以根据需求加个判断处理这种情况。
内容的提问来源于stack exchange,提问作者Ozgur
相关产品推荐
相关产品推荐

