能否用Uvicorn替代Daphne为Django本地开发服务器添加ASGI支持?
能否用Uvicorn替代Daphne实现Django的ASGI支持?
可以,完全能用Uvicorn替代Daphne来为Django提供ASGI支持,操作起来甚至更简洁——如果只是单纯启用ASGI而非依赖Channels的WebSocket等功能,连INSTALLED_APPS的配置都不需要改。
具体操作步骤:
- 先安装Uvicorn:
pip install uvicorn - 直接用Uvicorn启动Django的ASGI应用:
找到项目根目录下的asgi.py文件,执行以下命令(把your_project_name替换成你的实际项目名称):
其中uvicorn your_project_name.asgi:application --reload--reload参数和runserver的自动重载效果一致,适合开发环境使用。
运行效果示例:
INFO: Will watch for changes in these directories: ['/path/to/your/project'] INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) INFO: Started reloader process [12345] using WatchFiles INFO: Started server process [12347] INFO: Waiting for application startup. INFO: Application startup complete.
补充说明:
- 如果你的项目用到了Channels的WebSocket、长连接等高级功能,Uvicorn也能完美配合Channels使用,只要确保Channels的ASGI应用正确挂载即可,没必要非得用Daphne。
- Django从3.0版本开始就原生支持ASGI,Uvicorn作为标准的ASGI服务器,完全兼容Django的ASGI接口,稳定性和性能都有保障。
内容的提问来源于stack exchange,提问作者M3RS
相关产品推荐
相关产品推荐

