在Django项目中运行基于async aiohttp的路由的实用程序。
项目描述
这是一个概念验证实验,旨在将Django WSGI应用程序与使用aiohttp的异步视图/websocket处理程序相结合。API非常不稳定,不建议将其用于除疯狂实验之外的其他目的。
工作原理
aidjango.get_aio_application构建一个应用程序,该应用程序结合了Django请求处理器/视图和aiohttp.web。视图使用正常的Django URL模式语法定义,但任何协程处理器都由
内部,它使用了aiohttp-wsgi,该工具在线程池中运行Django WSGI应用程序,以最小化对应用程序异步部分的阻塞。
运行演示
示例项目需要Python 3.4+才能运行。您应该创建一个虚拟环境来安装必要的依赖项
$ 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
这将使用Django内置的runserver的新版本在http://localhost:8000/上启动服务器。对于多进程服务器,您可以使用aiohttp工作器以及Gunicorn运行
(aiodjango) $ gunicorn example.wsgi:app --worker-class aiohttp.worker.GunicornWebWorker --workers 2