本文整理自网络,侵删。
使用ASGI进行部署
除了WSGI,Django还支持在ASGI上进行部署,ASGI是用于异步Web服务器和应用程序的新兴Python标准。
Django的startproject管理命令为您设置了一个默认的ASGI配置,您可以根据项目的需要对其进行调整,并指导任何符合ASGI的应用服务器使用。
Django包括以下ASGI服务器的入门文档:
- 如何在Daphne中使用Django
- 如何在Uvicorn中使用Django
该application对象
与WSGI一样,ASGI也为您提供了一个application可调用对象,应用程序服务器使用该可调用对象与您的代码进行通信。通常application以在服务器可访问的Python模块中命名的对象的形式提供。
该startproject命令将创建一个/asgi.py包含此类application可调用文件的文件 。
开发服务器(runserver)不会使用它,但是任何ASGI服务器都可以在开发或生产中使用它。
ASGI服务器通常采用可调用的应用程序路径作为字符串。对于大多数Django项目,它看起来像myproject.asgi:application。
警告:尽管Django的默认ASGI处理程序将在同步线程中运行所有代码,但如果您选择运行自己的异步处理程序,则必须注意异步安全性。
不要在任何异步代码中调用阻塞同步函数或库。Django禁止您使用非异步安全的Django部分执行此操作,但第三方应用程序或Python库可能并非如此。
配置设置模块
当ASGI服务器加载您的应用程序时,Django需要导入设置模块-定义整个应用程序的位置。
Django使用 DJANGO_SETTINGS_MODULE环境变量以找到适当的设置模块。它必须包含指向设置模块的虚线路径。您可以将不同的值用于开发和生产。这完全取决于您如何组织设置。
相关阅读 >>
更多相关阅读请进入《Django》频道 >>

Python编程 从入门到实践 第2版
python入门书籍,非常畅销,超高好评,python官方公认好书。