【问题标题】:How to set up simple HTTP server in Python 3.5 on Windows 10?如何在 Windows 10 上的 Python 3.5 中设置简单的 HTTP 服务器?
【发布时间】:2016-03-19 01:05:42
【问题描述】:

我使用 python 3.5 IDLE、windows 10 和 edge 作为浏览器。我在简单的 HTTP 服务器上执行以下简单代码时遇到问题。问题是它只是在删除 HTML 选项卡后显示代码,而不是显示“Hello World!这是我的第一个 CGI 程序”。 我在设置环境变量等方面遗漏了什么吗?

代码:

import cgi, cgitb
print ("Content-type:text/html\n\n")
print ('<html>')
print ('<head>')
print ('<title>Hello Word - First CGI Program</title>')
print ('</head>')
print ('<body>')
print ('<h2>Hello World! This is my first CGI program</h2>')
print ('</body>')
print ('</html>')

【问题讨论】:

  • 你为什么用cgi?试试看“Flask”,简单多了
  • 感谢您的建议。我只是在关注python教程。一定会尝试烧瓶,

标签: python cgi


【解决方案1】:

我已经能够让您编写的代码正常工作,所以这可能是您的调用环境中的一个问题。

如果您看到 cgi 文档的这一部分:https://docs.python.org/3/library/cgi.html 那么

如果它安装在标准 cgi-bin 目录,应该可以通过在浏览器中输入 URL 来发送请求:

http://yourhostname/cgi-bin/cgi.py?name=Joe+Blow&addr=At+Home

以及此处的 python HTTP Server 文档的 cgi 部分:https://docs.python.org/3/library/http.server.html#http.server.CGIHTTPRequestHandler

cgi_directories

这默认为['/cgi-bin', '/htbin'] 并描述被视为包含 CGI 脚本的目录。

那么我们需要的是一定的文件夹结构,如:

cgi-test
 |
 +-- cgi-bin
    |
    +-- test.py

test.py 包含您的上述代码。

现在要启动 python HTTP 服务器,导航到您的封闭文件夹(即cgi-test)并输入python -m http.server --cgi 8000,假设您的python 可执行文件在您的系统路径上,您应该会得到如下响应:Serving HTTP on 0.0.0.0 port 8000 ...

最后使用您的浏览器导航到http://localhost:8000/cgi-bin/test.py 以查看您呈现的页面。

注意:cgi-test 可以是任何东西,例如 C:\Users\Username\Website, D:\MyServer\ ...

注意 2: 如果我将 test.py 文件上移一级到 cgi-test 文件夹,我会得到与您描述的结果相似的结果(即我看到的是代码而不是渲染页面)

注意 3: 我在 Windows 7 上运行 python 3.4,但希望它足够相似,您应该能够遵循相同的过程。

【讨论】:

  • 非常感谢。它确实奏效了。我必须从 cgi-test 目录启动服务器。有什么办法可以从任何目录启动服务器?
  • 嗯,cgi-test 是一个示例文件夹,它可以被称为任何东西,重要的一点是 cgi-bin 文件夹应该在你的 web 服务器的顶层(你从哪里启动服务器) .您似乎可以通过将其他默认目录添加到 cgi_directories 数据成员来添加其他默认目录 - 如上面第二个链接中所述。当他建议检查 Flask 时,我也是第二个 @tonka... 如果它对您有帮助,请随时将其标记为解决方案...
猜你喜欢
  • 2016-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多