Code前端首页关于Code前端联系我们

初体验django3.0,支持async异步

terry 2年前 (2023-09-25) 阅读数 62 #后端开发

django3.0的三个重要特性是支持MariaDB10.1+和自定义枚举类型(TextChoices、IntegerChoices)。

我们目前不关心其他新功能。我们主要的事情是了解ASGI。大家都知道,在django3.0之前,Django的Web服务器网关接口一直使用WSGI。ASGI的A是Async,即异步。意思是,ASGI 只是异步 WSGI。由于Django基于WSGI的效率相对较低,因此Django团队首创了ASGI的概念。 ASGI 模式将把 Django 作为本机异步应用程序运行。原始 WSGI 模式围绕每个 Django 调用运行单个事件循环以启用异步处理层。与同步服务器兼容。

简单来说,Django从3.0开始支持异步。话不多说,先简单介绍一下ASGI的经历。

首先我们使用Pycharm新建一个Django3.0项目:

django3.0 ASGI初体验,支持Async异步

项目名称为:django_cn

在Pycharm终端pip list中查看我们的django版本:DjangoDjango 3.0.5.

然后我们使用之前的wsgi来启动我们的项目:

python manage.py runserver

django3.0 ASGI初体验,支持Async异步

然后我们访问:http://127.0.0.1:8000/

django3.0 ASGI初体验,支持Async异步

这是Django3.0的欢迎页面,开始使用wsgi。

打开我们的项目目录,如下:

django3.0 ASGI初体验,支持Async异步

看,我们的目录下比之前的django2.py文件多了一个asgi.py文件。这就是我们前面提到的ASGI组件。接下来,我们将使用这个服务器组件来启动我们的项目。

ASGI服务器组件,我们有两个应用服务器来启动它,一个是使用Uvicorn,Uvicorn是一个基于uvloop和httptools的ASGI服务器,它理论上是Python中性能最高的框架。另一个是Daphne,它是Django 软件基金会开发的基于ASGI (HTTP/WebSocket) 的服务器。

1。使用Uvicorn启动ASGI组件

首先安装Uvicorn。

pip install uvicorn

安装完成后,我们使用以下命令来启动我们的项目:

uvicorn django_cn.asgi:application

注意:django_cn是我们的项目名称。

django3.0 ASGI初体验,支持Async异步

启动成功后就可以访问我们的项目了。

2。使用Daphne启动ASGI组件

使用方法与Uvicorn相同。

#安装Daphne
pip install daphne

#然后使用下面命令启动项目
daphne djang_cn.asgi:application

两者性能相差不大,所以推荐使用达芙妮。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门