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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aiodjango-0.1.0.tar.gz (7.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aiodjango-0.1.0-py2.py3-none-any.whl (9.7 kB view details)

Uploaded Python 2Python 3

File details

Details for the file aiodjango-0.1.0.tar.gz.

File metadata

  • Download URL: aiodjango-0.1.0.tar.gz
  • Upload date:
  • Size: 7.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for aiodjango-0.1.0.tar.gz
Algorithm Hash digest
SHA256 af816fbb239db2965e8375111f1380915324a6f1baa4dd343df00ee89f4e9248
MD5 c7b04ed0d557adb24ffd169f07e20882
BLAKE2b-256 3eb934ca7e80331c8dbfad76cf60aeca719456f72e40e07e611c487c41d35591

See more details on using hashes here.

File details

Details for the file aiodjango-0.1.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for aiodjango-0.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 02cc6cd03c9399007877e306c2a20e40b13438041f2b97bd27b00476f03e86a8
MD5 19a5cfd067dece7c2a16029ee213c3ad
BLAKE2b-256 3753c745e2a18dcd704b8f8f8f792c31852a0cf4c753eac808a499fd5f965ccd

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

0.0

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page