支持异步的Django 3.X来了,你准备好了吗? Django 3.0新特色与变化详解。

2023-02-17 18:05:22


Django在本月10日发布了Django 3.0 alpha版本,标志着Django 3.X时代的来临。作为Django的忠粉们,你们准备好了吗? 尽管Django 3.0的最终正式版还没有发布,我们一起来抢先看看新版本里会有哪些激动人心的变化吧?

Python兼容性

Django 3.0 将支持 Python 3.6、3.7 与 3.8。Django 2.2.x 会是最后一个支持 Python 3.5 版本的系列。对于第三方Django应用,官方建议应用开发作者放弃对 Django 2.2 之前版本的支持。

数据库的支持

Django 3.0将放弃对PostgreSQL 9.4和Oracle 12.1 的支持。不过Django 3.0将支持使用MariaDB 10.1或更高版本的数据库。开发者将多了一种数据库的选择。

新增对ASGI的支持,Django的异步时代来了

Django 3.0 开始将新增对 ASGI的支持,让 Django 逐渐支持异步功能。这是Django对现有WSGI 模式支持的补充。Django打算在可预见的将来同时支持ASGI和WSGI这两种工作模式,但是异步功能仅对在 ASGI 下运行的应用程序可用。除非你要开始试用异步代码,否则无需切换应用程序。

新增PostgreSQL的排除约束

新的ExclusionConstraint 类可以在 PostgreSQL 上添加排除约束;约束可以通过Meta.constraints 选项添加。

BooleanField的过滤表达

Django 3.0版本中输出的带BooleanField 的表达式现在可以直接在 QuerySet 过滤器中使用,而无需先注解然后对注解进行过滤。

新增TextChoices和IntegerChoices类

新增枚举类型 TextChoices和IntegerChoices 类。Django 3.0中你不仅可以通过元组自定义Choices选项,还可以使用类的继承自定义选项。比如下例通过类的继承自定义了Vehicle的选项。

>>> class Vehicle(models.TextChoices):
...     CAR = 'C'
...     TRUCK = 'T'

其它小变化

  • 新增 get_user_permissions()方法,模仿现有的 get_group_permissions() 方法

  • Required fields将支持多对多字段。

  • Cookie和session部分新增 get_session_cookie_age()方法

  • Formsets将支持排序,通过can_order属性设定。

正式版发布时间?

Django 3.0正式版将于2019年12月发布。同时官方还给出了Django 3.1版预计发布时间: Oct 2020。

参考原文

https://docs.djangoproject.com/en/dev/releases/3.0/

小编的话

Django更新的稍微有点勤,都快跟不上节奏了。刚用Django的时候还是1.0.X版的,眨眼间Django 3.0都要来了。不过话又说回来,这说明开发者一直努力维护着Django,让其变得更好。这难道不是好事一件吗?  喜欢Django的同志们别忘了加关注或收藏哦。

最后提前祝大家国庆快乐!!

大江狗

2019.9.29

推荐阅读

Django的未来在哪里?

Django的应用前景怎么样? 有没有更好的Web框架?


  • 作者:大江狗
  • 原文链接:https://blog.csdn.net/weixin_42134789/article/details/101731394
    更新时间:2023-02-17 18:05:22