如何使用 ASGI 来部署
Django 的管理命令 startproject 生成了一个默认的 ASGI 配置,你可以按照自己项目的需要去调整这个配置,任何兼容 ASGI 的应用程序服务器都可以直接使用。
Django 提供了下面这些 ASGI 服务的入门文档:
与WSGI类似,ASGI需要你提供 application
可以让应用程序服务器用它与你的代码交互。可调用的应用程序 application
一般以一个位于 Python 模块中,名为应用程序 的对象的形式提供,且对服务器可见。
它不会被开发服务器使用 (runserver
) ,但是可以在开发环境或生产环境中用任意一种ASGI服务器来使用。
ASGI服务器通常会以字符串形式获取可调用应用程序的路径;对于大多数Django项目来说,应用程序形如 。
警告
不要在异步代码中调用阻塞的同步函数或库。Django会阻止你这样异步不安全地使用Django的内容,但是对第三方应用程序或者Python库不一定会这样。
当 ASGI 服务器加载应用程序时,Django 需要导入配置模块——完整定义应用程序的地方。
Django 利用 DJANGO_SETTINGS_MODULE 环境变量来定位合适的配置模块。它必须包含到配置模块的点式路径。开发环境和生产环境可以配置不同值;这都取决于你是如何组织配置的。
为了应用ASGI中间件,或者将Django嵌入到其他的ASGI应用程序中,你可以将Django的 应用程序对象包装到 asgi.py
文件中。举个例子: