根据 Django 的项目目录,Django 异步功能草案(DEP 0009)已被技术委员会通过,预计将在 3.0 中正式引入。
该 DEP 主要关注 HTTP 中间件视图和 ORM,要在 Django 中添加异步支持,同时维护对同步 Python 的支持,并且将完全向后兼容。
最终会替换掉 Django 中的大多数阻塞部分,包括 Session、Auth、ORM 与 Handlers 等,使其原生支持异步。而同步 API 将继续存在并得到完全支持,其中一些最终将转变为原生异步代码的同步包装器。
ASGI 模式将 Django 作为原生异步应用程序运行,WSGI 模式将围绕每个 Django 调用运行单个事件循环,以使异步处理层与同步服务器兼容。
在这个改造的过程中,每个特性都会经历以下三个实现阶段:
- Sync-only,只支持同步,也就是当前的情况
- Sync-native,原生同步,同时带有异步封装器
- Async-native,原生异步,同时带同步封装器
这一草案是 Django 贡献者 Andrew Godwin 于去年提出的,他认为在 Django 传统 MVC 模式中支持异步功能,将会弥补程序同步执行中上下文切换时间过长这一 Python 核心缺陷。
详情查看该 DEP(Django Enhancement Proposals,Django 增强草案):
https://github.com/django/deps/blob/master/accepted/0009-async.rst
猜你喜欢:暂无回复。