You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python 3的CGI脚本中解析URL中的GET参数

解决方案

你当前逻辑的问题在于,os.environ['QUERY_STRING']返回的本身就是URL中?之后的完整查询串,不需要再通过urlparse解析完整URL提取query字段,直接将查询串传入parse_qs即可正常解析参数。

修正后的代码如下:

#!/usr/bin/python3
import os
from urllib.parse import parse_qs

try:
    # 直接读取查询字符串,无查询参数时默认返回空字符串避免报错
    query_str = os.environ.get('QUERY_STRING', '')
    # 直接解析查询串得到参数字典
    query_params = parse_qs(query_str)
    # 取rurl参数的第一个值
    redirect_url = query_params['rurl'][0]
    # 后续业务逻辑
    print(redirect_url)
except KeyError:
    # 没有rurl参数的处理逻辑
    print("缺少必填参数rurl")
except Exception as e:
    # 其他异常处理
    print(f"参数解析失败:{str(e)}")

更推荐的实现方案

你也可以直接使用Python标准库自带的cgi模块处理CGI请求参数,代码更简洁且兼容GET/POST两种请求方式:

#!/usr/bin/python3
import cgi

# 解析请求参数
form = cgi.FieldStorage()
# 直接获取rurl参数,不存在时返回默认空字符串
redirect_url = form.getfirst('rurl', '')

if redirect_url:
    print(redirect_url)
else:
    print("缺少必填参数rurl")

内容的提问来源于stack exchange,提问作者merlin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 21:06:02