Search code examples
pythondjangodjango-1.8

Django runserver from Python script


The normal way to start the Django server is to run the following command from a terminal or a bash script:

python manage.py runserver [Ip.addr]:[port] 

e.g.

python manage.py runserver 0.0.0.0:8000

How can I start a Django server from a Python script?

One option is the following

import os
if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "server.settings")
    from django.core.management import execute_from_command_line
    args = ['name', 'runserver', '0.0.0.0:8000']
    execute_from_command_line(args)

Is there a better way?


Solution

  • Python has already builtin HTTP server

    python -m SimpleHTTPServer
    

    OR you have an alternative to run the django server

    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "server.settings")
    
    from django.core.management import call_command
    from django.core.wsgi import get_wsgi_application 
    application = get_wsgi_application()
    call_command('runserver',  '127.0.0.1:8000')