我是Python新手 - 从未在今天之前使用它。我感兴趣的是为Web开发Python应用程序。我想检查一下我的Web服务器是否支持WSGI或以某种方式运行python应用程序。
假设我有一个打印“Hello world!”的.py文件。如何测试我的服务器是否支持处理此文件?
仅供参考,这是Mac OS X服务器10.5。所以我知道安装了Python(它默认安装在Mac OS X上),但我不知道它是否设置为处理服务器端的.py文件并返回结果。
顺便说一下,我来自PHP背景,所以这对我来说有点陌生。我看过python docs re:wgsi,cgi等等,但由于我还没有做任何具体的事情,所以它并没有多大意义。答案 0 :(得分:5)
一个非常基本的WSGI应用程序可以如下所示:
def application(environ, start_response):
start_response('200 OK', [('content-type', 'text/html')])
return ['Hello world!']
不幸的是,如果你把它放在服务器上的helloworld.py中,然后浏览到URL / helloworld.py,你很可能会看到代码。
通常,您需要向服务器(或服务器配置文件)添加非常具体的配置选项,以使其正确地为您的python“应用程序”提供服务。鉴于您在Apache 2上使用mod_wsgi,配置可能如下所示:
<VirtualHost *>
ServerName example.com
WSGIScriptAlias /server/location/address /path/to/helloworld.py
</VirtualHost>
其中/ server / location / address是您必须浏览的URL的端点。
这是因为python WSGI捕获传递给它的所有URL,并将它们推送到相同的入口点(您的应用程序方法/类)。并且从参数中收到的信息中,应用程序必须决定返回哪个页面。
由于此信息是特定于应用程序的,因此应该有一种在服务器上配置它的方法,但是我还没有遇到允许配置Python应用程序的Web托管配置面板。这通常意味着您必须联系服务器管理员并让他们为您配置。
但是,一般情况下,当您注册托管时,公司通常会有一个页面,告诉您他们服务器上支持的内容(通常是:php,mysql)以及允许的空间和带宽。因此,如果他们没有在他们的网站上列出,很可能他们不会支持它。
要解决此问题,您可以购买VPS(虚拟专用服务器),然后根据需要进行配置。
答案 1 :(得分:2)
如果您不熟悉Python和Python Web应用程序开发,那么请忽略所有托管问题并且不要从头开始。只需获得一个功能齐全的Python Web框架,如Django或web2py,并学习如何使用他们内置的开发Web服务器编写Python Web应用程序。通过首先尝试解决生产网络托管的明显问题,你只会给自己带来很多痛苦。
答案 2 :(得分:1)
首先阅读此内容。
How Python web frameworks, WSGI and CGI fit together
然后修改你的问题,专门提出你尚未发现的事情。
阅读本文后,重新阅读关于mod_wsgi
的部分,这是Apache可以运行Python的几种方式之一。
重新阅读该部分后,重新阅读有关Python如何作为cgi
脚本运行的部分。这是Apache可以运行Python的另一种方式。
重新阅读完所有内容后,请修改问题以解释Apache配置的哪些部分会让您感到困惑。
你找不到mod_wsgi
吗?你找不到mod_cgi
吗?请具体说明Apache配置的哪些部分让您感到困惑。