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 的方法。
此外还有一些小改动,详情查看更新说明:
需要注意的是,Django 3.0 支持 Python 3.6、3.7 与 3.8,Django 2.2.x 系列是最后一个支持 Python 3.5 的系列。官方同时也建议第三方应用作者放弃对 Django 2.2 之前的所有版本的支持。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
QMUI Android 2.0.0 发布首个对外版本
QMUI Android 2.0.0 发布了 alpha 01 版本,这是 v2 首个对外版本。QMUI Android 的设计目的是用于辅助快速搭建一个具备基本设计还原效果的 Android 项目,同时利用自身提供的丰富控件及兼容处理,让开发者能专注于业务需求而无需耗费精力在基础代码的设计上。不管是新项目的创建,或是已有项目的维护,均可使开发效率和项目质量得到大幅度提升。 此版本主要变化内容包括: 支持库迁移到 Androidx, 最低支持版本升级到 API 19。 支持夜间模式,QMUI 做得更通用一点,提供了换肤功能。 重构 QMUIPopup 与 QMUITabSegment 等组件,提供更丰富的功能。 移除旧的以背景切图来实现分隔线的实现方式与相关资源,采用 QMUILayout 方案替代。 官方介绍,此版本与 1.x 版本并不完全兼容,很多资源的增删改和组件接口与实现都有变更,所以升级到 2.x 版本可能需要稍费一点时间,特别是资源配置的变更,可能导致虽然编译没问题,但是 UI 显示却不正确的现象。 详情查看: http://blog.cgsdream.org/2019/1...
- 下一篇
鲁班 H5 1.7.1 发布,可以理解为开源版本的简单易企秀、人人秀
【鲁班H5】前后端都开源的h5快速制作平台,类似于开源版本的易企秀、人人秀,可以通过拖拽的形式,快速生成H5 1.7.1更新的内容有(2019-11-30) Bug Fixes 更新设置 yarn 镜像(3cf794b) plugin: 修复轮播图、多选组、单选组的默认值 (141036f) 修正透明颜色#105 (35965ff) text:设置文字的默认边框为0 (f21bf35) update mirror.sh (3cf794b) plugin: clone the default items for slide,radio group, checkbox group (141036f) #105 (35965ff) text: set default border radius: 0 (f21bf35) Features install:提供一键安装脚本,简化安装步骤,在本地通过使用Docker+Ubuntu 镜像,即可快速安装+体验鲁班H5 (2e123b6) install: add one click install script for Ubuntu18.04 (2e...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合Redis,开启缓存,提高访问速度
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Windows10,CentOS7,CentOS8安装Nodejs环境
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2整合Thymeleaf,官方推荐html解决方案