2010-11-30 3 views
0

Большинство руководств, которые я видел для создания файла WSGI для использования с mod_wsgi, либо настраивает его для Django, либо Pylons. Однако я хотел бы создать файл wsgi без его настройки для какой-либо конкретной структуры. Как мне это сделать. Ниже приведен код из сценария WSGI для использования с Django:mod_wsgi WSGI скрипт для неструктурированного веб-разработки Python

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 для наложения среды БАЗОВОЙ (да, я использую базовый уровень и применение конкретных virtualenv):

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

Как мой WSGI сценарий выглядеть, если я не использую его для какой-либо конкретной структуры?

EDIT: Это для использования с Apache сервера

+0

Вы хотите использовать mod_wsgi с некоторым сервером. Какой сервер вы хотите использовать? – pyfunc 2010-11-30 07:54:11

+0

@pyfunc: см. Правки, для Apache, который является – yretuta 2010-11-30 07:55:15

ответ

3

Для простого приложения WSGI в PEP 333:

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 может найти объект application, который соответствует wsgi в вашем модуле.

По соображениям безопасности вам действительно необходимо определить ваше приложение в другом модуле вне любых каталогов, опубликованных apache, и ограничить код в файле wsgi минимальным требованием для импорта этого модуля и привязать приложение wsgi к application переменная.