fix django run

This commit is contained in:
Benoit Chesneau 2010-05-17 06:21:28 +02:00 committed by Paul J. Davis
parent b99355e0a7
commit cdffaeff16
3 changed files with 13 additions and 9 deletions

View File

@ -10,6 +10,7 @@ from django.core.handlers.wsgi import WSGIHandler
from django.core.servers.basehttp import AdminMediaHandler, WSGIServerException
from gunicorn import util
from gunicorn.config import Config
from gunicorn.app.base import Application
class DjangoApplication(Application):
@ -30,8 +31,8 @@ class DjangoApplication(Application):
project_name = os.path.split(self.project_path)[-1]
settings_name, ext = os.path.splitext(os.path.basename(settings_path))
settings_modname = "%s.%s" % (project_name, settings_name)
self.cfg.default_proc_name = settings_modname
self.settings_modname = "%s.%s" % (project_name, settings_name)
self.cfg.set("default_proc_name", self.settings_modname)
sys.path.insert(0, self.project_path)
sys.path.append(os.path.join(self.project_path, os.pardir))
@ -48,8 +49,12 @@ class DjangoApplication(Application):
class DjangoApplicationCommand(Application):
def __init__(self, cfg, admin_media_path):
self.cfg = cfg
def __init__(self, options, admin_media_path):
self.cfg = Config()
for k, v in list(options.items()):
if k.lower() in self.cfg.settings and v is not None:
self.cfg.set(k.lower(), v)
self.admin_media_path = admin_media_path
self.configure_logging()

View File

@ -20,7 +20,7 @@ KNOWN_SETTINGS = []
class Config(object):
def __init__(self, usage):
def __init__(self, usage=None):
self.settings = dict((s.name, s) for s in KNOWN_SETTINGS)
self.usage = usage

View File

@ -53,18 +53,17 @@ class Command(BaseCommand):
options['bind'] = addrport or '127.0.0.1'
options['default_proc_name'] =settings.SETTINGS_MODULE
cfg = Config(options, options.get('gconfig'))
admin_media_path = options.get('admin_media_path', '')
admin_media_path = options.pop('admin_media_path', '')
quit_command = (sys.platform == 'win32') and 'CTRL-BREAK' or 'CONTROL-C'
print "Validating models..."
self.validate(display_num_errors=True)
print "\nDjango version %s, using settings %r" % (django.get_version(),
settings.SETTINGS_MODULE)
print "Development server is running at %s" % str(cfg.address)
print "Development server is running at %s" % options['bind']
print "Quit the server with %s." % quit_command
# django.core.management.base forces the locale to en-us.
translation.activate(settings.LANGUAGE_CODE)
DjangoApplicationCommand(cfg, admin_media_path).run()
DjangoApplicationCommand(options, admin_media_path).run()