热门Python网页开发框架Django推出最新的4.1版本,这次主要更新包括加入异步处理程序(Asynchronous Handler)以及异步ORM接口(Object-Relational Mapping Interface),并且包含部分无法向后兼容的更改。
异步基于类别的View是Django 4.1的一大重点,除了之前同步方法处理程序之外,View的子类别现在可以定义异步HTTP方法处理程序。在单个View类别中所有用户定义的方法,View只能是同步或是非不同步的,当两者混在一起则会产生异常。
ORM异步接口QuerySet则提供在基于类别的View上,定义异步处理程序的能力,QuerySet可用于所有资料访问操作,接口的命名参考同步操作,只是加入前缀a,像是acreate或aget。官方提到,在这个阶段,底层数据库的操作都仍然维持同步,接下来他们的工作会继续将异步支持下推至SQL编译器中,并集成异步数据库驱动程序。
新的异步查询QuerySet接口封装了必要的sync_to_async操作,让开发者可以随着之后ORM的发展,扩展程序代码对异步的支持。
Django 4.1有不少非向后兼容的更改,影响范围涵盖一系列数据库后端API,像是调整特定行为默认值,以反映大多数数据库的行为等。Django 4.1支持的Python版本包括3.8、3.9、3.10,另外,Django 4.1将不再支持PostgreSQL 10,仅支持PostgreSQL 11或更高版本,而Django也不再支持MariaDB 10.2,用户需要使用MariaDB 10.3或更高版本。