Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/adamchainz/django-browser-reload

Automatically reload your browser in development.
https://github.com/adamchainz/django-browser-reload

Last synced: 3 months ago
JSON representation

Automatically reload your browser in development.

Awesome Lists containing this project

README

        

=====================
django-browser-reload
=====================

.. image:: https://img.shields.io/github/actions/workflow/status/adamchainz/django-browser-reload/main.yml.svg?branch=main&style=for-the-badge
:target: https://github.com/adamchainz/django-browser-reload/actions?workflow=CI

.. image:: https://img.shields.io/badge/Coverage-100%25-success?style=for-the-badge
:target: https://github.com/adamchainz/django-browser-reload/actions?workflow=CI

.. image:: https://img.shields.io/pypi/v/django-browser-reload.svg?style=for-the-badge
:target: https://pypi.org/project/django-browser-reload/

.. image:: https://img.shields.io/badge/code%20style-black-000000.svg?style=for-the-badge
:target: https://github.com/psf/black

.. image:: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white&style=for-the-badge
:target: https://github.com/pre-commit/pre-commit
:alt: pre-commit

Automatically reload your browser in development.

----

**Work smarter and faster** with my book `Boost Your Django DX `__ which covers django-browser-reload and many other tools.
I wrote django-browser-reload whilst working on the book!

----

Requirements
------------

Python 3.8 to 3.12 supported.

Django 3.2 to 5.1 supported.

WSGI supported on all Django versions. ASGI supported on Django 4.2+.

Your browser needs to support:

* |EventSource|__ - universally available.

.. |EventSource| replace:: ``EventSource``
__ https://developer.mozilla.org/en-US/docs/Web/API/EventSource#browser_compatibility

* |SharedWorker|__ - available on Chrome, Edge, Firefox, and Opera for a long time.
Available on Safari since version 16 (2022-09-12).

.. |SharedWorker| replace:: ``SharedWorker``
__ https://developer.mozilla.org/en-US/docs/Web/API/SharedWorker#browser_compatibility

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

1. Install with **pip**:

.. code-block:: sh

python -m pip install django-browser-reload

2. Ensure you have ``"django.contrib.staticfiles"`` in your ``INSTALLED_APPS``.

3. Add django-browser-reload to your ``INSTALLED_APPS``:

.. code-block:: python

INSTALLED_APPS = [
...,
"django_browser_reload",
...,
]

4. Include the app URLs in your root URLconf:

.. code-block:: python

from django.urls import include, path

urlpatterns = [
...,
path("__reload__/", include("django_browser_reload.urls")),
]

You can use another prefix if required.

5. Add the middleware:

.. code-block:: python

MIDDLEWARE = [
# ...
"django_browser_reload.middleware.BrowserReloadMiddleware",
# ...
]

The middleware should be listed after any others that encode the response, such as Django’s ``GZipMiddleware``.

The middleware automatically inserts the required script tag on HTML responses before ``