Skip to main content

Utilities for running async aiohttp based routes in the context of a Django project.

Project description

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

Project details


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

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

Uploaded Python 2 Python 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.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page