diff options
author | RaNaN <Mast3rRaNaN@hotmail.de> | 2010-02-13 22:48:12 +0100 |
---|---|---|
committer | RaNaN <Mast3rRaNaN@hotmail.de> | 2010-02-13 22:48:12 +0100 |
commit | 9901aaf3d6ead464863039c9f1b5a88b3e3df987 (patch) | |
tree | 284c547eb15e5970667ec291fdc9fadbf1b8dbee /module/web/run_server.py | |
parent | cnl fix, webif. add dialog - destionation choosable (diff) | |
download | pyload-9901aaf3d6ead464863039c9f1b5a88b3e3df987.tar.xz |
django builtin server improvement
Diffstat (limited to 'module/web/run_server.py')
-rwxr-xr-x | module/web/run_server.py | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/module/web/run_server.py b/module/web/run_server.py new file mode 100755 index 000000000..3bb9b13f7 --- /dev/null +++ b/module/web/run_server.py @@ -0,0 +1,66 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +from django.core.management.base import BaseCommand, CommandError +import os +import sys + +os.environ["DJANGO_SETTINGS_MODULE"] = 'settings' + +def handle( *args ): + import django + from django.core.servers.basehttp import run, AdminMediaHandler, WSGIServerException + from django.core.handlers.wsgi import WSGIHandler + + try: + if len(args) == 1: + try: + addr,port = args[0].split(":") + except: + addr = "127.0.0.1" + port = args[0] + else: + addr = args[0] + port = args[1] + except: + addr = '127.0.0.1' + port = '8000' + + print addr, port + + admin_media_path = '' + shutdown_message = '' + quit_command = (sys.platform == 'win32') and 'CTRL-BREAK' or 'CONTROL-C' + + from django.conf import settings + from django.utils import translation + + print "\nDjango version %s, using settings %r" % (django.get_version(), settings.SETTINGS_MODULE) + print "Development server is running at http://%s:%s/" % (addr, port) + print "Quit the server with %s." % quit_command + + translation.activate(settings.LANGUAGE_CODE) + + try: + handler = AdminMediaHandler(WSGIHandler(), admin_media_path) + run(addr, int(port), handler) + except WSGIServerException, e: + # Use helpful error messages instead of ugly tracebacks. + ERRORS = { + 13: "You don't have permission to access that port.", + 98: "That port is already in use.", + 99: "That IP address can't be assigned-to.", + } + try: + error_text = ERRORS[e.args[0].args[0]] + except (AttributeError, KeyError): + error_text = str(e) + sys.stderr.write(("Error: %s" % error_text) + '\n') + # Need to use an OS exit because sys.exit doesn't work in a thread + os._exit(1) + except KeyboardInterrupt: + if shutdown_message: + print shutdown_message + sys.exit(0) + +if __name__ == "__main__": + handle(*sys.argv[1:]) |