Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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.
- Host: GitHub
- URL: https://github.com/tjwalch/django-livereload-server
- Owner: tjwalch
- License: bsd-3-clause
- Created: 2015-12-09T09:14:56.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2024-05-27T16:29:58.000Z (7 months ago)
- Last Synced: 2024-10-29T00:43:15.292Z (about 2 months ago)
- Topics: development, django, tools
- Language: Python
- Size: 70.3 KB
- Stars: 409
- Watchers: 6
- Forks: 63
- Open Issues: 17
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGES.rst
- License: LICENSE
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 portBackground
----------
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.