我是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等等,但由于我还没有做任何具体的事情,所以它并没有多大意义.
一个非常基本的WSGI应用程序可以如下所示:
def application(environ, start_response):
start_response('200 OK', [('content-type', 'text/html')])
return ['Hello world!']
Run Code Online (Sandbox Code Playgroud)
不幸的是,如果你把它放在服务器上的helloworld.py然后浏览到URL/helloworld.py,你很可能会看到代码.
通常,您需要向服务器(或服务器配置文件)添加非常具体的配置选项,以使其正确地为您的python"应用程序"提供服务.鉴于您在Apache 2上使用mod_wsgi,配置可能如下所示:
<VirtualHost *>
ServerName example.com
WSGIScriptAlias /server/location/address /path/to/helloworld.py
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
其中/ server/location/address是您必须浏览到的URL的端点.
这是因为python WSGI捕获传递给它的所有URL,并将它们推送到相同的入口点(您的应用程序方法/类).并且从参数中收到的信息中,应用程序必须决定返回哪个页面.
由于此信息是特定于应用程序的,因此应该有一种在服务器上配置它的方法,但是我还没有遇到允许配置Python应用程序的Web托管配置面板.这通常意味着您必须联系服务器管理员并让他们为您配置它.
但是,一般情况下,当您注册托管时,公司通常会有一个页面,告诉您他们服务器上支持的内容(通常是:php,mysql)以及允许的空间和带宽.因此,如果他们没有在他们的网站上列出,很可能他们不会支持它.
为了解决这个问题,您可以购买VPS(虚拟专用服务器),然后根据需要进行配置.