nephila/djangocms-helper

View on GitHub
docs/asgi.rst

Summary

Maintainability
Test Coverage
#######################
ASGI / Channels support
#######################

django-app-helper comes with minimal channels / ASGI support.

Default configuration provides a sample ``asgi`` application already enabled in ``ASGI_APPLICATION`` setting.

This means that if you install ``channels`` or ``daphne`` in your rest environment ``./helper.py server`` can run a channels / ASGI enabled instance.

.. note:: Pure ASGI support is available only for Django 3.0+.

************************
Run with channels
************************

To run with channels you must provide an ``ASGI_APPLICATION`` in the project ``helper.py`` pointing to your base channels application.

Optionally you can set ``CHANNEL_LAYERS``.

Example:

    .. code-block:: python

        HELPER_SETTINGS = dict(
            ...
            # required
            ASGI_APPLICATION='tests.example_app.routing.application',
            # Optional
            CHANNEL_LAYERS={
                'default': {
                    'BACKEND': 'channels_redis.core.RedisChannelLayer',
                    'CONFIG': {
                        'hosts': [('localhost', 6379)],
                    },
                },
            },
            ...
        )


The run the ``server`` command with the ``--use-channels`` option set::

    $ python helper.py server --use-channels

************************
Run with daphne
************************

To run with daphne you can provide a custom ``ASGI_APPLICATION`` in the project ``helper.py`` if you actually have one or more ASGI application configure beyond django. The default ``ASGI_APPLICATION`` will run the django runserver command.

Example:

    .. code-block:: python


        HELPER_SETTINGS = dict(
            ...
            ASGI_APPLICATION='my_project.asgi:application',
            ...
        )


The run the ``server`` command with the ``--use-daphne`` option set::

    $ python helper.py server --use-daphne