Python 标题(-type=>;';text';)在Perl的cgi中打印什么

Python 标题(-type=>;';text';)在Perl的cgi中打印什么,python,python-3.x,perl,header,cgi,Python,Python 3.x,Perl,Header,Cgi,我是cgi新手,正在尝试将Perl cgi脚本转换为Python 我在脚本中看到了这些语句 my $q = new CGI; print $q->header(-type=>'text'); 通过查看它,我可以理解q是一个标量变量,它拥有从中调用CGI脚本的表单数据 但是上面的打印语句做什么呢 它会在表单头字典中检查类型头的值,并在此基础上打印True或False吗 我没有Perl解释器来执行和检查输出。启动输出 我们使用CGI对象打印出HTTP头 对于输出: print $q-&

我是cgi新手,正在尝试将Perl cgi脚本转换为Python

我在脚本中看到了这些语句

my $q = new CGI;
print $q->header(-type=>'text');
通过查看它,我可以理解q是一个标量变量,它拥有从中调用CGI脚本的表单数据

但是上面的打印语句做什么呢

它会在表单头字典中检查类型头的值,并在此基础上打印True或False吗


我没有Perl解释器来执行和检查输出。

启动输出

我们使用CGI对象打印出HTTP头 对于输出:

print $q->header; 
这将为您提供以下HTTP标头:

Content-Type: text/html; charset=ISO-8859-1 
Content-Type: text/plain; charset=ISO-8859-1
例如,如果您需要在标题中有任何额外选项,您可能不需要 默认的“type”,您只需将它们传递到header方法:

print $q->header(-type => "text/plain"); 
这将为您提供以下HTTP标头:

Content-Type: text/html; charset=ISO-8859-1 
Content-Type: text/plain; charset=ISO-8859-1
欲了解更多信息,请访问。

引用

header()
返回
内容类型:
标题。如果选择,可以提供自己的MIME类型,否则默认为
text/html
。可选的第二个参数指定状态代码和人类可读的消息。例如,您可以指定204“无响应”来创建一个脚本,该脚本告诉浏览器什么也不做。请注意,RFC2616期望有人类可读的阶段以及数字状态代码

print $cgi->header( -Content_length => 3002 );
“它有什么作用?”

my$q=new CGI
创建一个新的https://metacpan.org/pod/CGI 对象,它可以为您做很多事情。最好的是参数、路径信息和标题

print$q->header(-type=>'text')
打印页眉,告诉浏览器正在生成什么<代码>-类型=>'text'不足;它应该是一个完整的MIME类型,例如
text/plain
text/html
text/csv
application/json
或其他许多类型。您甚至可以生成一幅图像,并键入
image/jpeg
或其他内容

它还将打印状态,即200,用于OK。您的程序在没有它的情况下应该可以运行,但添加它并没有坏处


您正在尝试将其移植到Python,我不知道Python必须编写哪些选项,但您可能不需要它。只需使用换行符(
\n
)分隔您要插入的任何标题条目,例如expires标记,然后添加另一个以将标题与正文分隔开

现在大多数系统都安装了Perl,或者只需点击两下即可安装。有关在Windows上安装Perl的详细信息,请参阅。请查看CGI模块()的文档,在这里可以直接回答您的问题。CGI程序通过标准输出流发送HTML来工作,所以这就是print语句所做的。它正在发送标题
q
是对类
CGI
的对象的引用。如果您想将代码从一种语言转换为另一种语言,它通常有助于了解代码的功能。运行它对此非常有帮助。你不能在不了解其怪癖的情况下对其进行反向工程,也不能在不运行它的情况下了解它们。你的问题标题谈论的是
html
内容类型,但你的正文谈论的是
文本
。这两个答案都没有说明这些捷径中的任何一条。这是怎么一回事?文本、HTML或特定类型?这意味着
print$q->header(-type=>'Text')
内容类型设置为
text/plain
,并根据结果返回
true
false
。最后,print将打印true或false。我说的对吗?不,这是错误的,
标题
方法返回字符串。这就是为什么要打印字符串。请参阅文档。@Sukumar No,正如@Corion所说的
header
方法返回一个字符串,该字符串通过标准输出流由print语句发送。谢谢大家。我现在明白了。