diff options
| author | Adrian Holovaty <adrian@holovaty.com> | 2005-07-18 15:25:58 +0000 |
|---|---|---|
| committer | Adrian Holovaty <adrian@holovaty.com> | 2005-07-18 15:25:58 +0000 |
| commit | b68c478aa5d890e76aae6e2f695220505618c8e0 (patch) | |
| tree | ec95c517543dc262e129a2a0ed6af9d90a85de28 /django/bin | |
| parent | fbfa3d603ec12bf3789df558e9fd2f9e7bd0eb0f (diff) | |
Added 'django-admin.py runserver', which starts a lightweight development server running Django on a local port
git-svn-id: http://code.djangoproject.com/svn/django/trunk@174 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django/bin')
| -rwxr-xr-x | django/bin/django-admin.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/django/bin/django-admin.py b/django/bin/django-admin.py index 9a19a492e4..96738461b1 100755 --- a/django/bin/django-admin.py +++ b/django/bin/django-admin.py @@ -362,6 +362,30 @@ def startapp(app_name, directory): startapp.help_doc = "Creates a Django app directory structure for the given app name in the current directory." startapp.args = "[appname]" +def runserver(port): + "Starts a lightweight Web server for development." + from django.core.servers.basehttp import run, WSGIServerException + from django.core.handlers.wsgi import WSGIHandler + if not port.isdigit(): + sys.stderr.write("Error: %r is not a valid port number.\n" % port) + sys.exit(1) + print "Starting server on port %s. Go to http://127.0.0.1:%s/ for Django." % (port, port) + try: + run(int(port), WSGIHandler()) + 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.", + } + try: + error_text = ERRORS[e.args[0].args[0]] + except (AttributeError, KeyError): + error_text = str(e) + sys.stderr.write("Error: %s\n" % error_text) + sys.exit(1) +runserver.args = '[optional port number]' + def usage(): sys.stderr.write("Usage: %s [action]\n" % sys.argv[0]) @@ -376,6 +400,7 @@ def usage(): ACTION_MAPPING = { 'adminindex': get_admin_index, # 'dbcheck': database_check, + 'runserver': runserver, 'sql': get_sql_create, 'sqlall': get_sql_all, 'sqlclear': get_sql_delete, @@ -406,6 +431,12 @@ if __name__ == "__main__": usage() ACTION_MAPPING[action](name, os.getcwd()) sys.exit(0) + elif action == 'runserver': + if len(sys.argv) < 3: + port = '8000' + else: + port = sys.argv[2] + ACTION_MAPPING[action](port) elif action == 'dbcheck': from django.core import meta mod_list = meta.get_all_installed_modules() |
