Mercurial > public > bravenewsurf
view bns_website/apache/bns.wsgi @ 27:a5e8741452a3
Add path to Django in WSGI file.
Use Django's simplesjon module as it will either import the Python system one if it exists, or use the one provided with Django as a fallback. This is needed for the production server, which is running Python 2.5.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Tue, 01 Nov 2011 20:15:21 -0500 |
parents | 6f68f6800843 |
children | f00199f1524c |
line wrap: on
line source
import os import sys OFFLINE = False here = os.path.dirname(__file__) website = os.path.dirname(here) repo = os.path.dirname(website) project = os.path.dirname(repo) eggs = os.path.join(project, 'eggs') django = os.path.join(project, 'django') sys.path.extend([repo, website, django]) os.environ['PYTHON_EGG_CACHE'] = eggs def offline_handler(environ, start_response): """ This handler is run when the site is in maintenance mode. It either displays a brief outage message, or, if a template file exists, it reads the file and returns its contents. """ wsgi_dir = os.path.dirname(__file__) sys.path.append(wsgi_dir) offline_file = os.path.abspath( os.path.join(wsgi_dir, '..', 'templates', 'offline.html')) if os.path.exists(offline_file): response_headers = [('Content-type','text/html')] response = open(offline_file).read() else: response_headers = [('Content-type','text/plain')] response = ('Brave New Surf website maintenance in progress; ' 'please check back soon.') if environ['REQUEST_METHOD'] == 'GET': status = '503 Service Unavailable' else: status = '405 Method Not Allowed' start_response(status, response_headers) return [response] if not OFFLINE: os.environ['DJANGO_SETTINGS_MODULE'] = 'bns_website.settings.production' import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler() else: application = offline_handler