网络 Python 问题

Posted

技术标签:

【中文标题】网络 Python 问题【英文标题】:Web Python Question 【发布时间】:2011-06-01 17:58:30 【问题描述】:

谁能帮助我在 Hostgator 共享主机上运行 Python 脚本?我主要使用 php,但喜欢 Python,并想尝试让它在网络上运行。我曾经运行 Python 的唯一方法是使用解释器或通过终端使用 >Python file.py。我尝试将一个 hello world 文件上传到网络服务器,但它输出的只是脚本源。我与 hostgator 进行了交谈,但他们只能告诉我我需要使用调度程序,我似乎找不到一个例子。我只想知道如何将

Hello

输出到浏览器。

谢谢,对不起,如果我是乱七八糟的,我整个星期都在谷歌上搜索这个。

【问题讨论】:

我更新了我的答案以解决您的评论。 【参考方案1】:

嗯,我从 Hostgator 自己的支持网站获得了 this。

假设您的主机运行的是 Python 2.x,那么您可以按如下方式调整链接到的脚本:

#!/usr/bin/python
print "Content-type: text/html\r\n\r\n"
print "<html><head>"
print "<title>CGI Test</title>"
print "</head><body>"
print "<p>Test page using Python</p>"
print "</body></html>"

并将其放入您的cgi-bin 文件夹中,权限为755。

更新:就“绕过”cgi-bin 文件夹而言:这取决于您的托管包允许的选项。查看 Bottle 以获取适合单个 Python 模块的简单调度程序。您可以使用 CGI 部署它,

import bottle
# Put your bottle code here, following the docs on the Bottle site
bottle.run(server=bottle.CGIServer)

进一步更新:除了 Bottle 文档,我建议您阅读 Python docs about CGI。

【讨论】:

效果很好!有没有办法绕过 cgi-bin 文件夹?或者也许使用 .htaccess 从 url 中写出来? 最后一个问题,使用此设置在 Python 中访问 get/post 的最简单方法是什么?类似于 PHP 中的 $_GET / $_POST 的东西?【参考方案2】:

我不了解 Hostgator,但您希望您的 Web 服务器将您的 Python 脚本视为可执行的 CGI 脚本。这意味着使其可执行并确保有 #!在其中并将其放入cgi-bin,或者将您的服务器设置为将.py 识别为CGI 脚本文件扩展名。 Here 是一个简单的示例脚本和一些使用 cgi 模块的上下文。

【讨论】:

【参考方案3】:

简单地说,你需要修改你的 .htaccess 文件以允许 Apache 将 python 文件解释为 cgi 脚本,然后使用 "#!/usr/bin/python" 编写你的 python 脚本并且不要忘记输出 http 标头(否则你将得到 500 内部错误)

您可以查看this post获取完整说明

【讨论】:

以上是关于网络 Python 问题的主要内容,如果未能解决你的问题,请参考以下文章

python网络编程

python 网络篇(网络编程)

在 Python 中获取网络地址和网络掩码

python中matlab的竞争网络类型

Python网络爬虫(上)

Python网络编程(OSI模型网络协议TCP)