Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/tjwalch/django-livereload-server

Livereload functionality integrated with your Django development environment.
https://github.com/tjwalch/django-livereload-server

development django tools

Last synced: about 1 month ago
JSON representation

Livereload functionality integrated with your Django development environment.

Awesome Lists containing this project

README

        

========================
django-livereload-server
========================

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.

Installation
------------

Install package: ::

$ pip install django-livereload-server

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

INSTALLED_APPS = (
...
'livereload',
...
)

Next you need to inject the loading of the livereload javascript. You can do this in one of two ways:

* Through middleware by adding ``'livereload.middleware.LiveReloadScript'`` to ``MIDDLEWARE`` (probably at the end)::

MIDDLEWARE = (
...
'livereload.middleware.LiveReloadScript',
)

* Through a templatetag in your ``base.html`` (or similar) template::

{% load livereload_tags %}
...
{% livereload_script %}

Either of these options will inject the ``livereload.js`` script into your webpages if ``DEBUG`` setting is on.

Configuration
-------------
If you need the livereload server to use a different host and port than the default 127.0.0.1 and 35729,
specify them by setting ``LIVERELOAD_HOST`` and ``LIVERELOAD_PORT`` in ``settings.py``.

Usage
-----
Start the livereload server::

$ python manage.py livereload

keep the livereload server running.

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

$ python manage.py runserver

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

127.0.0.1:8000 or localhost:8000

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

Customization
-------------

By default both template and staticfiles directories are watched.

You can ignore template directories using: ::

$ ./manage.py livereload --ignore-template-dirs

Or staticfiles directories using: ::

$ ./manage.py livereload --ignore-static-dirs

You can ignore file extensions: ::

$ ./manage.py livereload --ignore-file-extensions=.less,.scss

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 manage.py 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 manage.py livereload --host=myhost.com --port=9090

the runserver command ``python manage.py 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

Background
----------
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.