Python Django框架3.0发布,开始支持异步功能

Android社区 收藏文章

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 的方法。

此外还有一些小改动,详情查看更新说明:

需要注意的是,Django 3.0 支持 Python 3.6、3.7 与 3.8,Django 2.2.x 系列是最后一个支持 Python 3.5 的系列。官方同时也建议第三方应用作者放弃对 Django 2.2 之前的所有版本的支持。

相关标签
 相关文章
王慧文病休53天,旗下OneFlow团队重新创业 1年以前  |  1次阅读
智己CEO现场怒怼!不满LS6和小鹏G6当对手 1年以前  |  1次阅读
董明珠回应落榜世界500强:总比爆雷的世界500强好 1年以前  |  1次阅读
阿里云上线 AI 视频生成工具 Live Portait:可一键让照片开口说话 1年以前  |  78次阅读
妙鸭相机将并入神力视界,阿里大文娱CTO郑勇:不是“搬家”是“回家” 1年以前  |  85次阅读
特斯拉上海超级工厂约40秒下线一台车,零部件本土化率超95% 1年以前  |  69次阅读
宁德时代发布神行超充电池,可实现充电10分钟行驶800里 1年以前  |  71次阅读
中科院博士被骗到缅甸已一年!女友:他负债几万,家里条件一般,以为去当翻译 1年以前  |  85次阅读
小鹏汽车否认收购玛莎拉蒂传闻:系谣言 1年以前  |  63次阅读
联想二季度净利润猛降66%,股价应声跳水 1年以前  |  80次阅读
业内人士:视觉中国对不同侵权主体采用差异化策略,老客由销售沟通新客发律师函 1年以前  |  70次阅读
恒大集团在美国申请破产保护 1年以前  |  56次阅读
劳斯莱斯首款纯电轿跑将在北美亮相 1年以前  |  89次阅读
realme印度前CEO确认加盟荣耀,即将推出手机新品 1年以前  |  88次阅读
OpenAI正在测试内容审核系统,一天可以完成六个月的工作 1年以前  |  80次阅读
谷歌百人“复仇者联盟”出击,将发对标GPT-4的大模型,26位研发主管名单流出 1年以前  |  77次阅读
OpenAI收购数字产品公司Global Illumination,为创立以来首笔公开收购 1年以前  |  80次阅读
海口规定:电动汽车充电服务费不得超过0.65元每度 1年以前  |  80次阅读
波音任命柳青为波音中国总裁 1年以前  |  88次阅读
业内人士谈图片复杂代理链:图片代理商越多摄影师分成越少 1年以前  |  67次阅读

扫一扫

在手机上阅读