Mercurial > public > bravenewsurf
view bns_website/apache/bns.wsgi @ 19:ef4155f8c234
For issue #5, add an untested (!) WSGI script. I'll test & refine this later when the site gets deployed.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Mon, 31 Oct 2011 20:46:03 -0500 |
parents | |
children | 6f68f6800843 |
line wrap: on
line source
import os import sys OFFLINE = False here = os.path.dirname(__file__) website = os.path.dirname(here) project = os.path.dirname(website) third_party_apps = os.path.join(project, '3rdparty') eggs = os.path.join(project, 'eggs') sys.path.extend([project, website, third_party_apps]) 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