Django

Code

Changeset 174

Show
Ignore:
Timestamp:
07/18/05 10:25:58 (4 years ago)
Author:
adrian
Message:

Added 'django-admin.py runserver', which starts a lightweight development server running Django on a local port

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/bin/django-admin.py

    r162 r174  
    363363startapp.args = "[appname]" 
    364364 
     365def runserver(port): 
     366    "Starts a lightweight Web server for development." 
     367    from django.core.servers.basehttp import run, WSGIServerException 
     368    from django.core.handlers.wsgi import WSGIHandler 
     369    if not port.isdigit(): 
     370        sys.stderr.write("Error: %r is not a valid port number.\n" % port) 
     371        sys.exit(1) 
     372    print "Starting server on port %s. Go to http://127.0.0.1:%s/ for Django." % (port, port) 
     373    try: 
     374        run(int(port), WSGIHandler()) 
     375    except WSGIServerException, e: 
     376        # Use helpful error messages instead of ugly tracebacks. 
     377        ERRORS = { 
     378            13: "You don't have permission to access that port.", 
     379            98: "That port is already in use.", 
     380        } 
     381        try: 
     382            error_text = ERRORS[e.args[0].args[0]] 
     383        except (AttributeError, KeyError): 
     384            error_text = str(e) 
     385        sys.stderr.write("Error: %s\n" % error_text) 
     386        sys.exit(1) 
     387runserver.args = '[optional port number]' 
     388 
    365389def usage(): 
    366390    sys.stderr.write("Usage: %s [action]\n" % sys.argv[0]) 
     
    377401    'adminindex': get_admin_index, 
    378402#     'dbcheck': database_check, 
     403    'runserver': runserver, 
    379404    'sql': get_sql_create, 
    380405    'sqlall': get_sql_all, 
     
    407432        ACTION_MAPPING[action](name, os.getcwd()) 
    408433        sys.exit(0) 
     434    elif action == 'runserver': 
     435        if len(sys.argv) < 3: 
     436            port = '8000' 
     437        else: 
     438            port = sys.argv[2] 
     439        ACTION_MAPPING[action](port) 
    409440    elif action == 'dbcheck': 
    410441        from django.core import meta