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:

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:

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