近日,Django 3.0 Alpha 被放出,预计10月份会发布 Beta 版本,12月份会发布 Django 3.0 的正式版。
在这个Alpha版本中,支持的最低 Python 版本是 Python 3.6,这也意味着 Python 3.5 在 Django 3.0 中被正式抛弃。
本次更新的比较大的特性
1、支持 MariaDB 10.1 或更高版本。
2、支持将 Django 部署为一个 ASGI 服务,Django开始全面支持异步操作。
3、新增了两个类 TextChoices 和 IntegerChoices,这两个类可以用在定义models时,给 Field 的 choices 属性赋值。下面是一段示例代码
这两个类还有一些好用的方法,如.choices、.labels、.values、.names等。你也可以像一个enum一样去使用它。
这次更新移除的常见函数或类
django.shortcuts.render_to_response
django.contrib.staticfiles.templatetags.staticfiles.static
完整的更新日志地址
https://docs.djangoproject.com/en/dev/releases/3.0/
另外,Django官方还上线了一个社区,地址如下(不过国内似乎访问不畅,可能需要翻墙才能访问):
小编刚看到这则新闻时,不禁感叹:更新来得太快,让人猝不及防~
为什么这次Django版本号跳跃得这么大啊?我记得上一个版本好像才2.2,那2.3、2.4呢?
因为这次引入了完整的异步支持,对底层有比较大的重构,所以才直接跳到3.0了。其实这个异步支持本来2.0的时候就要加上的,最终时间实在没来得及,就耽搁了,这次3.0发布,主要是为了它。其实这个异步支持从Django 1.8开始就能实现了,只不过是临时放在了一个叫 channels 的第三方包里实现,没有合并到Django的主代码库,这次发布算是这个库的转正。大家如果不想升级Django,但是还想要异步支持,可以去研究下channels包哦~