mod_wsgi用于非框架Python Web开发的WSGI脚本

时间:2010-11-30 07:52:18

标签: python django apache mod-wsgi virtualenv

我看到创建用于mod_wsgi的WSGI文件的大多数指南要么为Django或Pylons设置它。但是,我想创建wsgi文件而不为任何特定框架设置它。我该怎么做呢。以下是wsgi脚本中用于Django的代码:

import os, sys
sys.path.append('/home/user/dev')
sys.path.append('/home/user/dev/site1')
os.environ['DJANGO_SETTINGS_MODULE'] = 'site1.settings'

import django.core.handlers.wsgi

application = django.core.handlers.wsgi.WSGIHandler()

mod_wsgi integration from google表示我需要将以下代码添加到WSGI脚本中以覆盖BASELINE环境(是的,我使用基线和特定于应用程序的virtualenv):

import site
site.addsitedir('/usr/local/pythonenv/PYLONS-1/lib/python2.5/site-packages')

如果我没有将它用于任何特定框架,我的WSGI脚本将如何?

编辑:这适用于Apache服务器

1 个答案:

答案 0 :(得分:3)

对于PEP 333中的简单wsgi应用程序:

def simple_app(environ, start_response):
    status = '200 OK'
    response_headers = [('Content-type', 'text/plain')]
    start_response(status, response_headers)
    return ['Hello world!\n']

application = simple_app

换句话说,您根本没有 进行任何设置。您只需确保mod_wsgi可以找到符合模块中wsgi的application对象。

出于安全原因,您确实应该在apache发布的任何目录之外的另一个模块中定义您的应用程序,并将wsgi文件中的代码限制为导入该模块并将wsgi应用程序绑定到{{{ 1}}变量。