web/tralalere/modwsgi.py
changeset 16 e37a29d23c86
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/tralalere/modwsgi.py	Wed Jun 06 23:00:42 2012 +0200
@@ -0,0 +1,58 @@
+"""
+WSGI config for tralalere project.
+
+This module contains the WSGI application used by Django's development server
+and any production WSGI deployments. It should expose a module-level variable
+named ``application``. Django's ``runserver`` and ``runfcgi`` commands discover
+this application via the ``WSGI_APPLICATION`` setting.
+
+Usually you will have the standard Django WSGI application here, but it also
+might make sense to replace the whole Django WSGI application with a custom one
+that later delegates to the Django one. For example, you could introduce WSGI
+middleware here, or combine a Django application with an application of another
+framework.
+
+"""
+import os, sys, site
+
+global g_env_set
+
+def application(environ, start_response):
+
+    if 'g_env_set' not in globals() or not g_env_set:
+        os.environ.setdefault('DJANGO_SETTINGS_MODULE',environ['DJANGO_SETTINGS_MODULE'])
+    
+        prev_sys_path = list(sys.path)
+    
+        sys.path.append(environ['PROJECT_PATH'])
+        for path in environ.get('PYTHON_PATH',"").split(os.pathsep):
+            if path:
+                site.addsitedir(path)
+    
+        new_sys_path = [] 
+        for item in list(sys.path): 
+            if item not in prev_sys_path and item not in new_sys_path: 
+                new_sys_path.append(item) 
+                sys.path.remove(item)
+        sys.path[:0] = new_sys_path
+        environ['PYDEV_DEBUG'] = environ.get('PYDEV_DEBUG', "False").lower() in ["true", "1", "t"]
+        g_env_set = True
+
+
+    # This application object is used by any WSGI server configured to use this
+    # file. This includes Django's development server, if the WSGI_APPLICATION
+    # setting points here.
+    from django.core.wsgi import get_wsgi_application
+    _application = get_wsgi_application()
+    
+    if environ.get('PYDEV_DEBUG', False):
+        import pydevd #@UnresolvedImport
+        pydevd.settrace(suspend=False)
+
+
+    return _application(environ, start_response)
+        
+
+# Apply WSGI middleware here.
+# from helloworld.wsgi import HelloWorldApplication
+# application = HelloWorldApplication(application)