web/ldt/core/handlers/modwsgi.py
author ymh <ymh.work@gmail.com>
Fri, 10 Sep 2010 16:02:46 +0200
changeset 33 729251dd5c31
permissions -rw-r--r--
add wsgi support
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
33
729251dd5c31 add wsgi support
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
import os, sys, site
729251dd5c31 add wsgi support
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
729251dd5c31 add wsgi support
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
def application(environ, start_response):
729251dd5c31 add wsgi support
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
    os.environ['DJANGO_SETTINGS_MODULE'] = environ['DJANGO_SETTINGS_MODULE']
729251dd5c31 add wsgi support
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
    os.environ['PY_USE_XMLPLUS'] = environ['PY_USE_XMLPLUS']
729251dd5c31 add wsgi support
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
729251dd5c31 add wsgi support
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
    prev_sys_path = list(sys.path)
729251dd5c31 add wsgi support
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
729251dd5c31 add wsgi support
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
    sys.path.append(environ['PROJECT_PATH'])
729251dd5c31 add wsgi support
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
    site.addsitedir(environ['PYTHON_PATH'])
729251dd5c31 add wsgi support
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
729251dd5c31 add wsgi support
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
    new_sys_path = [] 
729251dd5c31 add wsgi support
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
    for item in list(sys.path): 
729251dd5c31 add wsgi support
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
        if item not in prev_sys_path: 
729251dd5c31 add wsgi support
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
            new_sys_path.append(item) 
729251dd5c31 add wsgi support
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
            sys.path.remove(item) 
729251dd5c31 add wsgi support
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
    sys.path[:0] = new_sys_path 
729251dd5c31 add wsgi support
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
729251dd5c31 add wsgi support
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
    import django.core.handlers.wsgi
729251dd5c31 add wsgi support
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
729251dd5c31 add wsgi support
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
    _application = django.core.handlers.wsgi.WSGIHandler()
729251dd5c31 add wsgi support
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
729251dd5c31 add wsgi support
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
    return _application(environ, start_response)
729251dd5c31 add wsgi support
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24