Javascript is required
Django3.x体验

自2015年发布3.5版以来,协程和async / await语法已在Python中存在,但利用该功能的工具和项目发布缓慢。用于构建异步应用程序的成熟库开始可用,而我们喜欢的库正在朝异步方向发展。异步是Python的未来。

目前版本是Django==3.1.2

有什么不一样

对Python版本要求3.6

支持ASGI,异步服务网关接口。

支持原生的异步视图,同时也支持异步中间件。

支持ASGI

历史背景:如何实时消息通知机制?

HTTP协议

使用Http协议,每隔一段时间询问一次。 (轮询方式)

image-20201021225557958

  • 服务器压力很大
  • 发送了很多重复的报文

(长轮询)

Http是一种同步的通信机制。

WebSocket协议

建立持久的双向通信的连接

image-20201021230014588

image-20201021230110324

单台服务器并发连接

image-20201021230324991

体验

找到一个目录

python3 -m venv venv

Mac电脑

  source ./venv/bin/activate

可以看到新增的asg i.py文件。

├── ddd
│   ├── __init__.py
│   ├── asgi.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py

第一个异步视图

from django.http import HttpResponse

async def index(request):
  return HttpResponse("异步视图")

urls.py

from django.contrib import admin
from django.urls import path
from django31.views import index

urlpatterns = [
    path('admin/', admin.site.urls),
    path("", index)
]