Django 3.0发布,开始支持异步功能
Django 3.0 发布了,此版本带来了一些新特性,其中最值得关注的应当是其开始支持异步功能。
此前我们报导过,有草案提出要让 Django 支持异步。聚集于 HTTP 中间件视图和 ORM,开发者要在 Django 中添加异步支持,同时维护对同步 Python 的支持,并且将完全向后兼容。
该设想最终会替换掉 Django 中的大多数阻塞部分,包括 Session、Auth、ORM 与 Handlers 等,使其原生支持异步。而同步 API 将继续存在并得到完全支持,其中一些最终将转变为原生异步代码的同步包装器。
ASGI 模式将 Django 作为原生异步应用程序运行,原有的 WSGI 模式将围绕每个 Django 调用运行单个事件循环,以使异步处理层与同步服务器兼容。
在这个改造的过程中,每个特性都会经历以下三个实现阶段:
Sync-only,只支持同步,也就是当前的情况
Sync-native,原生同步,同时带有异步封装器
Async-native,原生异步,同时带同步封装器
Django 3.0 开始提供运行 ASGI 应用支持,让 Django 逐渐具备异步功能。做了这一改动后,Django 现在会感知到异步事件循环,并将阻止从异步上下文调用标记为“异步不安全”的代码(例如 ORM 操作),如果开发者之前使用的是异步代码,则可能会触发。如果看到 SynchronousOnlyOperation 错误,可以仔细检查代码并将数据库操作移到同步子线程中。
其它方面,Django 现在支持 MariaDB 10.1 及更高版本;新的 ExclusionConstraint 类可以在 PostgreSQL 上添加排除约束;输出 BooleanField 的表达式现在可以直接在 QuerySet 过滤器中使用,而无需先注解然后对注解进行过滤;自定义枚举类型 TextChoices、IntegerChoices 和 Choices 现在可用作定义 Field.choices 的方法。
此外还有一些小改动,详情查看更新说明:
https://docs.djangoproject.com/en/3.0/releases/3.0
需要注意的是,Django 3.0 支持 Python 3.6、3.7 与 3.8,Django 2.2.x 系列是最后一个支持 Python 3.5 的系列。官方同时也建议第三方应用作者放弃对 Django 2.2 之前的所有版本的支持。
2019 年最受欢迎中国开源软件评选最后一天!
↓↓↓↓↓↓长按投票↓↓↓↓↓↓
- Django 3.0 将支持异步功能
- Django 3.0 将提供异步功能原生支持
- Django 3.0 Alpha 发布,Python3.5 被放弃支持
- redis 集群(3.0版本开始支持集群功能)
- redis 集群(3.0版本开始支持集群功能)
- servlet 3.0无需配置web.xml,使用注入方式配置servlet实现登陆功能(服务器需要支持servlet3.0)
- 炫云新版本(scc19133)发布,支持原场景发送到邮箱,支持3dsMax拖拽式提交任务等功能
- F# 3.0发布:支持类似SQL语法的LINQ
- 百度地图JavaScriptAPIV1.5版本发布,支持用户海量数据展示,短信发送位置信息功能
- Wine 4.19 发布,实现更多的VBScript功能及ARM64支持修复
- PSP 3.93固件发布 四月开始支持Skype
- MoltenVK现在支持更多Vulkan扩展,开始针对Metal 3.0
- 傲游新浪微博插件发布 支持自动备份和文字转换为图片功能
- Instagram 3.0发布 添加“照片地图”功能
- 支持 Chromebook 的发行版,Bodhi Linux 3.0 发布
- Tizen 3.0 发布:采用 Linux 4.1 内核与 Wayland、支持64位
- 发布 web虎(2011-Windows加密狗版)-软件加密保护模块i111208版-修订1!增加支持功能:静默安装过程中,利用setup.ini预置安装参数,不需手工输 新建answer file做
- 让你的博客支持MetaWeblog离线发布_维护记录 - 站点功能_DangJian's Blog
- OpenCart 3.0版本之Alpha 版本发布开始测试
- Fanwe 方维P2P系统(3.0版本)接入手机短信功能--支持注册验证、资金变动提醒、投标提醒等