Django 4.1增加了异步处理程序
流行的Python网络框架的最新版本还为所有数据访问操作提供了一个异步接口
Django 4.1是基于Python的主要网络框架的新版本,增加了异步处理程序和ORM接口等功能,但也做了一些向后兼容的改动。
8月3日发布的Django 4.1可以从Django项目网站上访问。新版本为基于类的视图引入了异步处理程序;根据发布说明,视图子类现在可以定义异步HTTP方法处理程序。
对于异步对象-关系映射,QuerySet 现在为所有数据访问操作提供了一个异步接口。这个新的接口允许开发者编写异步代码,而不需要在sync_to_async() 中编写ORM操作。在这个阶段,底层数据库操作仍然是同步的。
Django 4.1支持Python 3.8、Python 3.9和Python 3.10,但只有每个系列的最新版本。同样在Django 4.1中:
Check,unique, 和exclusion在Meta.constraints选项中定义的约束现在在模型验证时被检查。- 新的基于
<div>的表单模板可用,以帮助拥有屏幕阅读器和其他辅助技术的用户。 - 一个
CSRF_COOKIE_MASKED过渡性设置允许开发者指定是否屏蔽CSRF(跨网站请求伪造)cookie。 - 一个
SECRET_KEY_FALLBACKS的设置允许为秘钥验证提供一个值的列表。 - 对于模板,HTML
<script>元素的id属性在包装json_script模板时不再需要。 - 对于测试,
DiscoverRunner现在支持在Windows、macOS和任何其他默认multiprocessing启动方法为spawn的系统上并行运行测试。
做了一些向后兼容的改变,包括一些影响到数据库后端API的改变。发布说明详细介绍了具体的变化,比如BaseDatabaseFeatures.has_case_insensitive_like 从True 改为False ,以反映大多数数据库的行为。
对PostgreSQL 10的上游支持在11月结束。Django 4.1支持PostgreSQL 11及以上版本。此外,由于对MariaDB 10.2的支持在5月结束,Django 4.1支持MariaDB 10.3及以上版本。
在另一个变化中,为了统一未保存的模型实例的多对多关系的行为,当调用未保存对象的相关管理器时,反向外键现在会引发一个ValueError。