【问题标题】:Having trouble getting my http server to recognize and run python scripts无法让我的 http 服务器识别和运行 python 脚本
【发布时间】:2016-07-06 18:31:32
【问题描述】:

我已经创建了一个本地地址 http 网络服务器,希望能够打开 HTML 网页和创建 HTML 网页的 python 脚本,但是我不断收到 501 错误,因为我不知道如何让网络服务器正确识别代码。另一个注意事项:我在 Windows 上编码,我没有使用 Cygwin(我对 Cygwin 一无所知,所以如果这是这里推荐的方法,将不胜感激如何开始使用它。)

无论如何,这就是我所拥有的。

我在 C:\ 中创建了一个名为 server_test 的文件夹,在这个文件夹中,我放置了所有相关的 HTML 和 python 文件。我一直在 eclipse (C:\workspace) 中的 PyDev 中编辑我的 .py 文件,然后将这些文件复制到 C:\server_test 中。

为了让我的服务器运行,我在 cmd 中导航到 \server_test,打开 python,然后使用 HTTPServer、CGIRequestHandler、当前目录、地址 127.0.0.1 和我选择的端口(通常为 9090)创建一个 Web 服务器。完成此操作后,我可以转到我的网络浏览器并输入我的一个 HTML 页面的地址,它运行得非常好。但是,我目前有一个 HTML 页面,用于调用将创建另一个 HTML 页面的 python 脚本(也位于 \server_test 中),但我无法让它工作。

我的 HTML 代码如下所示:

<html>
<title>Debug Page</title>
<body
<h1>This is a test file. </h1> 
<form method=POST action="my_code_2.py">
            <P><input type=submit>
</form>
</body></html>

然后我的“my_code_2.py”看起来像这样:

#!C:\Python35-32\python.exe 

import cgi
import cgitb; cgitb.enable() 

print("Content-type: text/html\r\n\r\n")
print('<html>')
print('<h1>')
print('<title>This is a second test.</title>')
print('</h1>')
print('</body')
print('</html>')

从我所读到的关于 shebang 行的内容看来,Windows 原生不支持它们?那么如何确保我的计算机知道它应该将代码作为 Python 运行呢?目前,当我在我的第一个 HTML 页面上按下按钮时,页面http://127.0.0.1:port/my_code_2.py 只是一个印有我的 Python 代码的白页。

【问题讨论】:

    标签: python html http server shebang


    【解决方案1】:

    尝试将您的 python 文件的扩展名更改为 .cgi,看看是否有帮助。如果你在网络服务器上运行 python,你可能会想要使用像 bottle.py 或 django tho 这样的东西。 Bottle 更容易学习,但功能更少。

    http://bottlepy.org/docs/dev/index.html

    https://www.djangoproject.com/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-05
      • 2018-04-06
      • 2012-03-27
      • 2014-12-02
      • 2010-09-26
      • 1970-01-01
      • 1970-01-01
      • 2016-06-09
      相关资源
      最近更新 更多