近日,Django官方发布了Django 3.0 alpha 1,这个版本标志着Django 3.0时代正式开启,代表了Django 3.0发展的第一个阶段,通过这个版本我们可以初步体验3.0时代的新功能。
在升级时我们需要注意,更新中不仅包含新功能,还包含一些不兼容旧版本的更改,并且弃用了一部分功能。
Django 3.0的变化如下:
Django 3.0支持的Python版本目前包含3.6、3.7、3.8,Django 2.2 X系列是最后支持Python 3.5的版本。在第三方插件支持方面,伴随着Django 3.0的发布,官方建议开发者放弃对2.2及之前版本的支持,修改代码并通过新版测试,全面支持3.0版本。
开始原生支持MariaDB 10.1 及更高版本。
Django 3.0 开始提供运行 ASGI 应用支持,让 Django 逐渐具备异步功能。做了这一改动后,Django 现在会感知到异步事件循环,并将阻止从异步上下文调用标记为“异步不安全”的代码(例如 ORM 操作),如果开发者之前使用的是异步代码,则可能会触发。如果看到 SynchronousOnlyOperation 错误,可以仔细检查代码并将数据库操作移到同步子线程中。
新的ExclusionConstraint类允许在PostgreSQL上添加排除约束。使用Meta.Constraints选项将约束添加到模型中。
输出BooleanField的表达式现在可以直接在QuerySet筛选器中使用,而不必首先批注,然后根据批注进行筛选。
支持使用自定义枚举类型TextChoices、IntegerChoices和Choices来定义Field.Choices。为文本和整型字段提供TextChoices和IntegerChoices类型。Choices类允许为其他具体数据类型定义兼容的枚举。这些自定义枚举类型支持通过枚举或其成员的属性进行转换和访问的易读标签。
还有其他更多更新细节,详见:
https://docs.djangoproject.com/en/dev/releases/3.0/#
END
特此声明,谢谢合作!
领取专属 10元无门槛券
私享最新 技术干货