Skip to main content

This is a proof-of-concept experiment to combine a Django WSGI app mixed with async views/websocket handlers using aiohttp. The API is highly unstable and I wouldn’t recommend that you use this code for anything other than wild experimentation.

https://travis-ci.org/mlavin/aiodjango.svg https://codecov.io/github/mlavin/aiodjango/coverage.svg?branch=master

How It Works

aidjango.get_aio_application builds an application which combines both request handlers/views from Django and aiohttp.web. Views are defined using the normal Django url pattern syntax but any handler which is a coroutine is handled by the aiohttp application while the rest of the views are handled by the normal Django app.

Internal this makes use of aiohttp-wsgi which runs the Django WSGI app in a thread-pool to minimize blocking the async portions of the app.

Running the Demo

The example project requires Python 3.4+ to run. You should create a virtualenv to install the necessary requirements:

$ git clone https://github.com/mlavin/aiodjango.git
$ cd aiodjango/
$ mkvirtualenv aiodjango -p `which python3.4`
(aiodjango) $ add2virtualenv .
(aiodjango) $ cd example
(aiodjango) $ pip install -r requirements.txt
(aiodjango) $ python manage.py migrate
(aiodjango) $ python manage.py runserver

This starts the server on http://localhost:8000/ with a new version of Django’s built-in runserver. For a more multi-process server you can run using the aiohttp worker along with Gunicorn:

(aiodjango) $ gunicorn example.wsgi:app --worker-class aiohttp.worker.GunicornWebWorker --workers 2

Release files for aiodjango 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aiodjango 0.1.0
File Size Uploaded
aiodjango-0.1.0.tar.gz 7.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aiodjango 0.1.0
File Interpreter ABI Platform
aiodjango-0.1.0-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 16.9 kB

Release files / aiodjango-0.1.0.tar.gz

Download URL aiodjango-0.1.0.tar.gz
Size 7.2 kB
Tags Source
SHA-256 checksum
How to use checksums
af816fbb239db2965e8375111f1380915324a6f1baa4dd343df00ee89f4e9248
BLAKE2b-256 checksum
How to use checksums
3eb934ca7e80331c8dbfad76cf60aeca719456f72e40e07e611c487c41d35591
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / aiodjango-0.1.0-py2.py3-none-any.whl

Download URL aiodjango-0.1.0-py2.py3-none-any.whl
Size 9.7 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
02cc6cd03c9399007877e306c2a20e40b13438041f2b97bd27b00476f03e86a8
BLAKE2b-256 checksum
How to use checksums
3753c745e2a18dcd704b8f8f8f792c31852a0cf4c753eac808a499fd5f965ccd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

0.0

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page