<p>这是我刚才写的东西。</p>
<p><strong>让Python在CGI中工作有一些技巧。</strong></p>
<ol>
<li><p>总是通过Apache浏览页面。
注意,通过浏览器查看文件系统中的文件对html页面上的大多数内容都有效,但对CGI则无效。要使脚本工作,必须通过htdocs文件系统打开它们。浏览器的地址行应如下所示:</p>
<pre><code>\\127.0.0.1\index.html or
\\localhost\index.html
</code></pre>
<p>如果通过文件系统打开一个文件,CGI将无法工作。例如,如果这在浏览器的位置栏中:</p>
<pre><code>c:\Apache\htdocs\index.html (or some other example location)
</code></pre></li>
<li><p>将脚本行尾转换为Unix格式:
大多数编辑器都有“显示行尾”的选项,然后有一个工具可以将Unix格式转换为PC格式。必须将行尾设置为Unix格式。</p></li>
<li><p>在CGI脚本的第一行说明Python解释器的路径:
Python CGI脚本的第一行必须包含以下行之一:</p>
<pre><code>#!C:\Python25\Python.exe
#!/usr/bin/python
</code></pre>
<p>顶行用于在PC上调试,底行用于1和1等服务器。我将这些行保留如图所示,然后在它们在服务器上运行后通过删除第一行来编辑它们。</p></li>
<li><p>在打印任何其他输出之前打印指定HTML的内容类型:
这可以通过在脚本的早期添加以下行来完成:</p>
<pre><code>print "Content-Type: text/html\n\n"
</code></pre>
<p>请注意,需要两行结尾。</p></li>
<li><p>设置Python脚本以提供调试信息:
导入以下内容以获取详细的调试信息。</p>
<pre><code>import cgitb; cgitb.enable()
</code></pre>
<p>如果cgitb不可用,另一种方法是:</p>
<pre><code>import sys
sys.stderr = sys.stdout
</code></pre></li>
<li><p>在服务器上,必须将python脚本权限设置为执行。
上载文件后,请确保编辑第一行并设置文件的执行权限。</p></li>
</ol>
<p>检查是否可以直接命中python脚本。如果不能,请按照上述步骤(2-6)进行修复。然后当Python脚本工作时,调试shtml。</p>