使用ASGI进行部署


本文整理自网络,侵删。

使用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 教程介绍

基于类的视图

Django 模型

使用基于类的视图进行表单处理

部署静态文章

Django 的性能与优化

使用asgi进行部署

内置基于类的通用视图

Django 安装

Django 的安全性

更多相关阅读请进入《Django》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...