Code前端首页关于Code前端联系我们

Django 4.2 (LTS) 发布,关键变更汇总!

terry 2年前 (2023-09-24) 阅读数 64 #后端开发

Django 4.2于2023年4月正式发布。该版本被命名为长期支持(LTS)。它在发布3年后收到安全更新,并在未来3年内成为主流版本。今天我们就来看看新版本有哪些变化吧?

Python 兼容性

Django 4.2 支持 Python 3.8、3.9、3.10 和 3.11。我们仅推荐并官方支持每个系列的最新版本。

Psycopg 3 支持

Django 现在支持 psycopg 3.1.8 或更高版本。要更新代码,请安装 psycopg 库。您不需要更改 django.db.backends.postgresql 因为它支持这两个库。

Psycopg2 可能会在将来的某个时候被弃用并删除。

请注意,psycopg3 为 .x psycopg2 带来了一些重大更改。因此,您可能需要进行一些更改以解决与 psycopg2 的差异。

数据库支持

MariaDB 10.3 前端支持将于 2023 年 5 月结束。Django 4.2 支持 MariaDB 10.4 及更高版本。对 MySQL 5.7 的上游支持将于 2023 年 10 月结束。Django 4.2 支持 MySQL 8 及更高版本。对 PostgreSQL 11 的后端支持将于 2023 年 11 月结束。Django 4.2 支持 PostgreSQL 12 及更高版本。

列和表注释

新的 Field.db_comment 和 Meta.db_table_comment 选项允许在列和表上创建注释。示例:

from django.db import models

class Question(models.Model):    text = models.TextField(db_comment="Poll question")    pub_date = models.DateTimeField(        db_comment="Date and time when the question was published",    )
    class Meta:        db_table_comment = "Poll questions"

class Answer(models.Model):    question = models.ForeignKey(        Question,        on_delete=models.CASCADE,        db_comment="Reference to a question",    )    answer = models.TextField(db_comment="Question answer")
    class Meta:        db_table_comment = "Question answers"

BREACH 攻击缓解措施

GZipMiddleware 现在包括 BREACH 攻击缓解措施。它在 gzip 响应中添加了多达 100 个随机字节,使 BREACH 攻击变得更加困难

内存文件存储

新的 django.core.files.storage.InMemoryStorage 类提供持久存储,可以通过避免磁盘访问来加快测试速度。

自定义文件存储

新的存储设置允许配置多个自定义文件存储守护程序。它还控制用于管理文件(“默认密钥”)和静态文件(“staticfiles”密钥)的存储引擎。

从此版本开始,旧的 DEFAULT_FILE_STORAGE 和设置已弃用。 STATICFILES_STORAGE

其他变化似乎没有什么特别值得期待的,Django 粉丝们,加油!

鄂江狗,2023年4月

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门