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

如何在Python脚本输出中取消‘Content-type: text/html’?

解决CGI脚本中停止输出‘Content-type: text/html’的问题

首先咱们先理清楚来龙去脉:你脚本里的print ("Content-type: text/html")是手动打印HTTP响应头的代码,这行本质是发给web服务器的指令,正常通过浏览器访问CGI脚本时,浏览器不会显示这行内容——它只是告诉服务器“接下来返回的是HTML格式的内容”。如果你直接在命令行运行脚本,这行才会被打印到控制台,属于正常现象。

根据你的需求,分两种场景给出解决方案:

场景1:通过web服务器访问时,页面意外显示了这行内容(正常情况不会)

如果你的脚本通过Apache、Nginx这类web服务器的cgi-bin运行,但浏览器里却出现了Content-type: text/html,大概率是脚本没有正确用空行分隔HTTP头和内容体(不过看你代码里已经有print("")了)。这时候可以换用cgi模块自动处理头,代替手动打印:

删掉你手动写的两行打印代码:

print ("Content-type: text/html")
print("")

然后用cgi模块的方法自动发送头,还能灵活指定内容类型:

import cgi
# 要返回HTML内容的话用这个
cgi.print_header(content_type='text/html')
# 如果要返回纯文本,改成下面这样
# cgi.print_header(content_type='text/plain')

这样既符合CGI规范,又能避免头内容意外泄露到页面里。

场景2:本地命令行测试脚本时,不想看到这行输出

如果你只是在本地跑脚本时不想看到Content-type: text/html,最简单的方法就是删掉那两行手动打印的代码。但要注意,直接删掉的话通过web服务器运行会报错(因为缺少必要的HTTP头),所以可以加个环境判断,只在CGI环境下打印头:

import os
# 判断是否处于web服务器的CGI环境中
if os.getenv('REQUEST_METHOD'):
    print("Content-type: text/html")
    print("")
# 后续的数据库操作、业务逻辑代码...

这样命令行运行时(没有REQUEST_METHOD环境变量)就不会打印头,通过web服务器访问时又能正常发送头。

另外顺便提一句:你写的select_from_sql函数里SQL语法有问题,正确的SELECT语句应该是SELECT id, source_server, source_path, destination_path FROM posts WHERE uuid = %s,别用values关键字哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:46:45