summaryrefslogtreecommitdiffstats
path: root/module/web/run_server.py
diff options
context:
space:
mode:
authorGravatar RaNaN <Mast3rRaNaN@hotmail.de> 2010-02-13 22:48:12 +0100
committerGravatar RaNaN <Mast3rRaNaN@hotmail.de> 2010-02-13 22:48:12 +0100
commit9901aaf3d6ead464863039c9f1b5a88b3e3df987 (patch)
tree284c547eb15e5970667ec291fdc9fadbf1b8dbee /module/web/run_server.py
parentcnl fix, webif. add dialog - destionation choosable (diff)
downloadpyload-9901aaf3d6ead464863039c9f1b5a88b3e3df987.tar.xz
django builtin server improvement
Diffstat (limited to 'module/web/run_server.py')
-rwxr-xr-xmodule/web/run_server.py66
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:])