Python noob:在支持Python的Web服务器上,我如何使用Python?

MAL*_*LON 0 python cgi

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

# enable debugging
import cgitb
cgitb.enable()

print "Content-Type: text/plain;charset=utf-8"
print

print "Hello World!"
Run Code Online (Sandbox Code Playgroud)

我的目标是用Python替换PHP.我对PHP非常好,我可以在我自己的本地机器上使用Python,但我不能让它在我的Web服务器上运行.我的网络主机说他们支持Python,所以我一定做错了.

现在,Python与CGI相关联.python文件必须进入我的cgi-bin文件夹吗?我从来没有见过带有py扩展名或cgi扩展名的web文件,我不知道这些东西是如何工作的,我真的只熟悉PHP.

我看了谷歌"学习Python"课程的第一个小时,而且只讨论了在本地运行Python的问题.

:(对不起,我是如此,请修理我.

Ale*_*dal 7

这是一个完全可以接受的CGI脚本.如果你正在使用Apache,它将需要进入你的cgi-bin,需要是可执行的(我可能是错的),你应该用该语言的公共扩展名来命名.py,或者用.cgi.

如果您可以控制您的网络服务器将考虑CGI的文件,您可以将文件放在任何您想要的位置.机会是,你无法控制.您可以在此处查看有关Apache中CGI的更多信息:http://httpd.apache.org/docs/2.2/howto/cgi.html

基本要点是Apache不会将文件视为CGI文件,除非满足两个条件:cgi-script需要使用AddHandleror SetHandler指令激活,并且ExecCGI需要在Options指令中启用.通常,共享托管环境中的用户无法使用此功能.

编辑:为了澄清,CGI只是一种机制,您可以用任意语言编写脚本,并让您的Web服务器执行它们并将该脚本的输出发送给您的客户端.除了简单的脚本之外,它不是推荐的方法,因为在每个请求中服务器都会启动一个新的解释器实例.对于Python,最好的解决方案是WSGI兼容框架,例如Flask,BottleDjango.前两个是微框架,试图避开你的方式,而Django是一个提供大量胶水的全栈框架.