2010-11-30 43 views
0

La plupart des guides que j'ai vu pour créer le fichier WSGI pour mod_wsgi le configurent pour Django ou Pylons. Cependant, je voudrais créer le fichier wsgi sans le configurer pour un cadre particulier. Comment puis-je faire cela. Ce qui suit est un code du script wsgi pour une utilisation avec Django:mod_wsgi Script WSGI pour le développement web Python non-frameworked

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() 

Le mod_wsgi integration from google dit que je dois ajouter le code suivant au script WSGI pour recouvrir l'environnement BASELINE (eh oui, je suis en utilisant une base de référence et virtualenv spécifique à l'application):

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

Comment mon script WSGI ressembler si je ne l'utilise pas pour tout cadre particulier?

EDIT: Ceci est pour une utilisation avec le serveur Apache

+0

Vous voudriez utiliser mod_wsgi avec un serveur. Quel serveur voulez-vous utiliser? – pyfunc

+0

@pyfunc: voir les modifications, pour Apache, c'est – yretuta

Répondre

3

Pour le simple application wsgi dans 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 

En d'autres termes, vous ne ont faire une configuration à tout. Vous devez juste vous assurer que mod_wsgi peut trouver un objet application conforme à wsgi dans votre module. Pour des raisons de sécurité, vous devez vraiment définir votre application dans un autre module en dehors des répertoires publiés par apache, et limiter le code dans votre fichier wsgi au minimum requis pour importer ce module et lier l'application wsgi au application variable.

+0

Hm, en regardant comment Google l'a dit, où dois-je spécifier que je veux utiliser le répertoire site-packages de l'application virtualenv pour remplacer le virtualenv de base? – yretuta

+2

Désolé, mais votre question initiale ne concernait pas la gestion des environnements virtuels python. Veuillez ouvrir une question distincte pour cela. –

+0

désolé pour le virtualenv. Maintenant, en prenant le code de votre réponse, comment puis-je modifier ce script afin qu'il serve les fichiers, et pas seulement la sortie "Hello World"? – yretuta