Python中文社区LYQ_Python

紧急插播,Django 3.0 已发布

2019-12-04  本文已影响0人  呆鸟的简书

2019 年 12 月 2 日,Django 团队推出了大家期盼已久的 Django 3.0,各位 Python 前端程序员惊呼,求求你们,别更新啦,学不过来啦 ~~~

下面是来自 Django 3.0 发布现场的最新报道,欲知详情,请前往发布现场亲自群殴,地址如下:
https://docs.djangoproject.com/en/3.0/releases/3.0/

纵览

Django 团队提出以下几点优势,引诱大家升级到新版 Django:

Python 兼容性

Django 3.0 支持 Python 3.6、3.7、3.8,不再支持 Python 3.5,Django 2.2.x 是最后支持 Python 3.5 的版本。

支持旧版 Django 的第三方支持库

Django 3.0 发布以后,官方团队建议第三方支持的作者赶紧抛弃所有对 Django 2.2 以前版本的支持。如果出现废弃警告,可运行 python -Wd 测试现有第三方支持库。修复所有废弃警告后,第三方支持库就可以兼容 Django 3.0 了。

Django 新特性

支持 MariaDB

万众期待的 MariaDB 终于正式加入到 Django 大家庭了,Django 3.0 开始支持 MariaDB 10.1 及之后的版本。

支持 ASGI

Django 3.0 开始,异步编程也加入了 Django 大家庭,终于可以运行 ASGI 了。

不过话说 ASGI 是个什么鬼? 简单说,ASGI 的大名叫 Asynchronous Server Gateway Interface,即异步服务器网关接口,是 WSGI 的小弟,应用于多服务器与应用框架,是向后兼容 WSGI 的异步与同步 APP 标准。

在可预见的未来里,(呆鸟注:差不多就是 Terminators 出现以前吧),Django 将支持 WSGI 与 ASGI 两种标准。 不过,异步功能只能在运行 ASGI 的应用程序里实现。

除非想动手编写异步代码,上手实践,否则不需要切换应用程序,Django 团队还提供了部署 ASGI的官档,有兴趣的可以到这里看:https://docs.djangoproject.com/en/3.0/howto/deployment/asgi/

官宣特意提醒大家,异步功能还有副作用,Django 3.0 会监控异步时间循环(asynchronous event loops),在异步环境里,还会阻止调用标记为“async unsafe”(异步风险)的代码,比如 ORM 操作。如果之前用过 Django 异步代码,也会触发不正确操作。遇到 SynchronousOnlyOperation 错误时,要仔细检查代码,并把数据库操作移动到同步子线程里。

PostgreSQL 的排除约束

新的 ExclusionConstraint 类可以让 PostgreSQL 添加排除约束。Meta.constraints 选项可以把这些约束添加到 Model。

筛选表达式

现在,可以直接在 QuerySet 筛选器使用输出 BooleanField 表达式 ,不必先注释,再对筛选注释。

Model 字段选择枚举(Enumeration)

现在,可以用自定义枚举类型,如 TextChoices、IntegerChoices、Choices 定义 Field.choicesTextChoicesIntegerChoices 类型支持文本与整数字段。Choices 类可以定义兼容其它具体数据类型的枚举。这些自定义枚举类型的标签易读、易懂,枚举或其成员可以通过指定属性访问这些标签。详见 Django 官档的枚举类型说明,https://docs.djangoproject.com/en/3.0/ref/models/fields/#field-choices-enum-types

小微改动

django.contrib.adin

django.contrib.auth

Models

Requests 与 Responses

好啦,这些小微改进还有好多好多,呆鸟就不一一介绍了,对 Django 3.0 感兴趣的朋友,可以直接到 https://docs.djangoproject.com/en/3.0/releases/3.0/ 查看。

Pandas 百问百答系列

上一篇 下一篇

猜你喜欢

热点阅读