Django 4.2发布,主要变化小结!

news2024/11/17 23:58:17

2023年4月,Django 4.2正式发布,此版本已被指定为长期支持 (LTS) 版本,发布3年后都会收到安全更新,将成为未来3年的主流版本。今天就来一起看看新版本有哪些变化吧?

Python 兼容性

Django 4.2 支持 Python 3.8、3.9、3.10 和 3.11。我们强烈推荐 并且只正式支持每个系列的最新版本。

Psycopg 3 支持

Django 现在支持psycopg 3.1.8 或更高版本。要更新您的代码,请安装psycopg 库,您无需更改, ENGINE因为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 攻击的缓解。它会将最多 100 个随机字节添加到 gzip 响应中,使 BREACH 攻击更加困难

内存文件存储

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

自定义文件存储

新STORAGES设置允许配置多个自定义文件存储后端。它还控制用于管理 文件("default"密钥)和静态文件("staticfiles"密钥)的存储引擎。

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

其它变化好像没有什么特别值得期待的,django粉丝们加油!

大江狗,2023年4月

b5aad60b74e4daa2848aca2aa07dcafd.jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/463451.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Golang Gin 局部、全局 中间件使用

中间件 中间件是放在客户端和服务端的中间。 当你的客户端对某个接口发起一个请求,但是在到达接口2之前,这里是有一层中间件的处理。 一般常用的就是处理跨域,比如处理登入的验证token,接口返回的信息比较敏感,说白…

Sample语言上下文无关文法

<表达式>: <表达式>-<算术表达式>|<关系表达式>|<布尔表达式>|<赋值表达式> <算术表达式> <算术表达式> -> <算术表达式> <项> | <算术表达式> - <项>|<项> <项> -> <项>* …

为什么企业要做大规模敏捷?

背景 软件工程里一个重要的指标就是“可用的软件”&#xff0c;敏捷宣言里也同样告诉我们“工作的软件高于详尽的文档”&#xff0c;那“可用的软件”、“工作的软件”意味着什么呢&#xff1f;在我的理解里&#xff0c;可以经历用户 “千锤百炼”的软件就是一个“可用的软件”…

Linux 共享库 静态库 动态库

一、 静态库(后缀.a)&#xff1a;程序执行前&#xff08;编译&#xff09;就加入到目标程序中去了 优点&#xff1a;运行速度快&#xff0c;发布程序无需提供静态库&#xff0c;因为已经在编译到目标程序中&#xff0c;运行的时候可以直接运行&#xff0c;移植方便 缺点&…

【Java】Eclipse的安装和JDK的安装与配置教程

Java是能够跨越多平台的、可移植性高的一种面向对象的编程语言&#xff0c;其简单易学、功能强大&#xff0c;越来越多的程序员喜欢加入Java的阵营之中。 一、前言 Java具有以下功能特点&#xff1a; 跨平台性&#xff1a;Java程序可以在任何支持Java虚拟机&#xff08;JVM&am…

C. Increasing by Modulo(贪心 + 二分)

Problem - C - Codeforces Toad Zitz有一个整数数组&#xff0c;每个整数都在0到m-1的范围内。这些整数是a1,a2...an。 在一次操作中,,iz可以选择一个整数k和k个萦引1..k&#xff0c;使得1si i2. ..fiksn。然后他应该将每个选定的整数a刘j 更改为(aj 1lmodm)。整数m对于所有操作…

初识STL

长久以来&#xff0c;软件界一直希望建立一种可重复利用的东西&#xff0c;以及一种得以制造出”可重复运用的东西”的方法&#xff0c;从函数(functions)&#xff0c;类别(classes),函数库(function libraries),类别库(class libraries)、各种组件&#xff0c;从模块化设计&am…

(C语言版)力扣(LeetCode)27.移除元素三种解法分析

移除元素 题目第一种解法&#xff1a;有效值前移第二种解法&#xff1a;双指针第三种解法&#xff1a;双指针优化结语 题目 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空…

【C++】vector OJ练习

文章目录 1. 只出现一次的数字思路讲解AC代码 2. 杨辉三角思路讲解AC代码 3. 只出现一次的数字 III思路讲解AC代码 4. 只出现一次的数字 II思路讲解AC代码 5. 删除有序数组中的重复项思路讲解AC代码 6. 数组中出现次数超过一半的数字思路讲解AC代码 这篇文章我们来做几道vector…

Jenkins学习笔记

Jenkins学习笔记 1、基本概念 Jenkins是一个开源软件项目&#xff0c;是基于Java开发的一种持续集成工具&#xff0c;用于监控持续重复的工作&#xff0c;旨在提供一个开放易用的软件平台&#xff0c;使软件项目可以进行持续集成。 2、安装 文件包&#xff1a;https://pan.…

半监督目标检测

有监督目标检测&#xff1a; 拥有大规模带标签的数据&#xff0c;包括完整的实例级别的标注&#xff0c;即包含坐标和类别信息&#xff1b;弱监督目标检测&#xff1a; 数据集中的标注仅包含类别信息&#xff0c;不包含坐标信息&#xff0c;如图一 b 所示&#xff1b;弱半监督目…

RHCE-防火墙

目录 一、防火墙介绍 1.1、什么是防火墙 1.2、防火墙的功能&#xff1a; 1.3、linux防火墙的架构 二、iptables 2.1iptables介绍 2.2名词术语&#xff1a; 什么是容器&#xff1f; 什么是Netfilter/Iptables&#xff1f; 什么是表&#xff08;tables&#xff09;&#x…

学历到底是敲门砖还是枷锁?—探讨“孔乙己文学”热搜背后的教育话题

序言 最近&#xff0c;“孔乙己文学”一度成为网络热门话题&#xff0c;引起了不少人的讨论。其中&#xff0c;一句“学历不仅是敲门砖&#xff0c;也是我下不来的高台&#xff0c;更是孔乙己脱不下的长衫”引发了广泛共鸣&#xff0c;让人深思。 敲门砖 or 枷锁&#xff1f; 对…

黑盒测试过程中【测试方法】详解4-因果图

在黑盒测试过程中&#xff0c;有9种常用的方法&#xff1a;1.等价类划分 2.边界值分析 3.判定表法 4.正交实验法 5.流程图分析 6.因果图法 7.输入域覆盖法 8.输出域覆盖法 9.猜错法 黑盒测试过程中【测试方法】讲解1-等价类&#xff0c;边界值&#xff0c;判定表_朝一…

大模型竞争加剧,国内外 AI 监管进一步升级

随着人工智能技术的不断发展&#xff0c;大模型已成为当下最热门的话题之一。不仅国内外的科技公司都在积极投入研发&#xff0c;各国政府也在加大监管力度&#xff0c;以确保人工智能技术的安全和可持续发展。本文将从三个层次分别探讨大模型的定义和热度、国内外AI监管的现状…

【STM32】基础知识 第八课 MDK 工程

【STM32】基础知识 第八课 MDK 工程 准备工作新建寄存器版本 MDK 工程步骤新建工程文件夹添加文件魔术棒设置绝对路径和相对路径对比测试程序 新建 HAL 库版本 MDK 工程CMSISHAL 库简介DriversMiddlewaresDevice 和 Include HAL 库文件介绍HAL 库 API 函数和比那辆命名规则HAL …

Fedora 38 正式发布

Fedora Linux 38 正式发布&#xff0c;用户可以访问官网下载安装最新版本。 新网站 如果你点击了上面的官网链接&#xff0c;你应该会注意到 Fedora 的官网看起来与之前有了很大不同。这是 Fedora Websites & Apps 团队与 Design & Infrastructure 团队以及广大社区合作…

HCIA-RS实验-ENSP搭建一个基础的IP网络

HCIA-RS是华为认证网络工程师&#xff08;Routing & Switching&#xff09;的缩写。通过考取HCIA-RS证书&#xff0c;可以证明自己有能力设计、实现和维护小型网络。而HCIA-RS实验则是考试的一部分&#xff0c;是考生必须要完成的实践环节。这将是第一篇文章&#xff0c;后…

Qt连接MySQL数据库最详细的教程

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1.直接通过MySQL的驱动加载数据库1&#xff09;所需代码2&#xff09;解决QMYSQL driver not loaded 2.通过ODBC连接MySQL数据库&#xff11;&#xff09;官方解释2…

如何react中使用redux和react-redux

Redux Redux 是 JavaScript 状态容器&#xff0c;提供可预测化的状态管理。 可以让你构建一致化的应用&#xff0c;运行于不同的环境&#xff08;客户端、服务器、原生应用&#xff09;&#xff0c;并且易于测试。 不仅于此&#xff0c;它还提供 超爽的开发体验&#xff0c;比…