LiveReload functionality integrated with your Django development environment

django, server, runserver, livereload, development, tools
pip install django-livereload-server==0.3.2



This django app adds a management command that starts a livereload server watching all your static files and templates as well as a custom runserver command that issues livereload requests when the development server is ready after a restart.


Install package:

$ pip install django-livereload-server

Add 'livereload' to the INSTALLED_APPS, before 'django.contrib.staticfiles' if this is used:


Add 'livereload.middleware.LiveReloadScript' to MIDDLEWARE_CLASSES (probably at the end):


Or to MIDDLEWARE for Django >= 1.10:


This will inject the livereload.js script into your webpages if DEBUG setting is on.


If you need the livereload server to use a different host and port than the default and 35729, specify them by setting LIVERELOAD_HOST and LIVERELOAD_PORT in


Start the livereload server:

$ python livereload

keep the livereload server running.

Start the django development server as usual (in another console):

$ python runserver

In the browser's address bar access your web app by doing: or localhost:8000

now every time you hit save in your editor, the django-development-server/livereload-server automatically updates the staticfiles


By default both template and staticfiles directories are watched.

You can ignore template directories using:

$ ./ livereload --ignore-template-dirs

Or staticfiles directories using:

$ ./ livereload --ignore-static-dirs

Extra files and/or paths to watch for changes can be added as positional arguments. By default livereload server watches the files that are found by your staticfiles finders and your template loaders.

$ python livereload path/to/my-extra-directory/

This will be excluded from the paths ignored by --ignore-template-dirs and --ignore-static-dirs.

Host and port can be overridden with --host and --port options.

$ python livereload --port=9090

the runserver command python runserver also accepts three additional options:

* ``--nolivereload`` to disable livereload functionality
* ``--livereload-host`` to override both default and settings file specified host address
* ``--livereload-port`` to override both default and settings file specified port


This project is based on a merge of python-livereload and django-livereload, excellent projects both and even better for smooth django development when combined.