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.
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)
| File | Size | Uploaded | |
|---|---|---|---|
| aiodjango-0.1.0.tar.gz | 7.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 |