fabiogibson / django-livesync

Django App which automatically reloads your browser when Django Development Server restarts or static files and templates are modified.
GNU General Public License v3.0
27 stars 11 forks source link
developer-tools development-environment development-server django live-reload live-sync python

What's this project?

It's a simple Django application which will automatically reload your browser everytime Django Development Server is restarted or any static file or template changes. Besides this, if you connect multiple browsers and devices on your development server, these will be all synchronized.

Quick start guide

Before installing, you'll need to have a copy of Django <http://www.djangoproject.com>_ already installed. For the current release, Django 1.8 or newer is required.

For further information, consult the Django download page <http://www.djangoproject.com/download/>_, which offers convenient packaged downloads and installation instructions.

Installing

Automatic installation using PyPI


type::

    pip install django-livesync

Basic configuration and use
---------------------------

Once installed, you can add Django LiveSync to any Django-based
project you're working on. The default setup will enable the following features.

1. Every time django development server is reloaded, all connected browsers will automatically refresh.

2. Every time a static file or template is updated, all connected browsers will automatically refresh.

3. Your actions will be synchronized between all connected browsers and devices. Currently supports:

   * Page scroll.
   * Page reload.
   * Element click.
   * Form fields in general.

**IMPORTANT**: Currently, it was only tested against Google Chrome and Mozilla Firefox web browsers.

Configuration
--------------------

Installing the application

Begin by adding livesync to the INSTALLED_APPS setting of your project. By default, the daemon will start watching all your installed apps template dirs. You can also specify the following additional settings:

LIVE_PORT This is the number of the port on which live server will run.

INCLUDED_APPS This tells django livesync to only watch for changes in apps in this set.

EXCLUDED_APPS This tells django livesync to ignore changes on apps in this set.

Setup Middleware


Add ``livesync.core.middleware.DjangoLiveSyncMiddleware`` to the ``MIDDLEWARE_CLASSES`` setting of your project.

**IMPORTANT NOTES**:

    1. If you have 'django.contrib.staticfiles' application installed, you must register 'django-livesync' before it, otherwise live server will not launch.

    2. Django LiveSync will only execute if DEBUG is set to True.

Example

You might have something like the following in your Django settings file::

DEBUG = True

INSTALLED_APPS = (
    '...',
    'livesync',
    'django.contrib.staticfiles',
    '...',
)

DJANGO_LIVESYNC = {
    'PORT': 9999 # this is optional and is default set to 9001.
}

MIDDLEWARE_CLASSES = (
    'livesync.core.middleware.DjangoLiveSyncMiddleware',
)

Once you've done this, run python manage.py runserver as usual.