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

基于Head First Python的WebApp问题:CGI脚本返回源码而非生成页面

CGI脚本返回源码的排查要点
  • 服务器未启用CGI处理
    确认你的简易HTTP服务器是否使用了支持CGI的处理器。Python自带的http.server模块中,只有CGIHTTPRequestHandler能处理CGI脚本,普通HTTPServer会直接返回源码。正确的服务器代码示例:

    from http.server import CGIHTTPRequestHandler, HTTPServer
    
    server_address = ('', 8000)
    httpd = HTTPServer(server_address, CGIHTTPRequestHandler)
    # 若需自定义CGI目录,可添加如下配置
    # httpd.handler_class.cgi_directories = ['/your_cgi_dir']
    httpd.serve_forever()
    
  • CGI脚本路径与目录配置不匹配
    CGIHTTPRequestHandler默认仅处理/cgi-bin/或/htbin/目录下的脚本。检查你的index.html中超链接的路径,确保指向正确的CGI目录,比如:

    <a href="/cgi-bin/generate_list.py">生成列表</a>
    

    同时要保证generate_list.py确实放在对应目录下。

  • 脚本缺少可执行权限或shebang行错误

    • Linux/macOS环境下,给脚本添加可执行权限:chmod +x generate_list.py
    • 脚本第一行必须添加正确的shebang,匹配系统Python路径,比如:
      #!/usr/bin/env python3
      
      若shebang路径错误,服务器无法识别这是可执行脚本,会直接返回源码。
  • 脚本未输出正确的HTTP头
    CGI脚本必须先输出HTTP响应头,否则服务器可能无法正确解析输出。确保generate_list.py开头有如下代码:

    print("Content-Type: text/html\n")
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 00:53:09