Django 4.0版本的主要变化!你还在用哪个版本?

Django4.0带来了Python3.10的兼容性,弃用了pytz,采用zoneinfo作为默认时区库。新增了UniqueConstraint函数类唯一约束,并引入了Redis内置缓存后端。此外,还更新了密码哈希算法,移除了部分过时功能,如is_ajax()方法。了解这些变化,有助于Django开发者更好地适应新版本。
摘要由CSDN通过智能技术生成

Django 4.0已经于2021年12月正式发布,标志着Django 4.X时代的来临。作为Django的忠粉们,你们准备新版本里令人激动人心的变化了吧? 去年一年非常忙,请原谅这篇迟到的文章。

Python兼容性

Django 4.0 将支持 Python 3.8、3.9 与 3.10。Django 3.2.x 会是最后一个支持 Python 3.7及之前版本的系列。

zoneinfo 成为默认的时区库

Python的标准库zoneinfo替代了过去的pytz库,成为Django的默认时区库。Django3.2是个过渡版本,可以使用非pytz的时区库。Django 4.0中,zoneinfo成为默认时区库。Django5.0以后pytz会被移除。

基于这个变化 django.utils.timezone.utc将变为datetime.timezone.utc.

定义模型时可以增加函数类唯一约束

UniqueConstraint() 新增了一个*expressions位置参数,可用于创建唯一性约束。定义模型时可以直接在Meta选项里使用唯一约束,如下所示:

from django.db import models
from django.db.models import UniqueConstraint
from django.db.models.functions import Lower


class MyModel(models.Model):
    first_name = models.CharField(max_length=255)
    last_name = models.CharField(max_length=255)


    class Meta:
        constraints = [
            UniqueConstraint(
                Lower('first_name'),
                Lower('last_name').desc(),
                name='first_last_name_unique',
            ),
        ]


新增Redis缓存后端

以前Django中使用redis都要安装django_redis,并将第三方库提供的django_redis.cache.RedisCache设置作为缓存后端。新版本内置了django.core.cache.backends.redis.RedisCache缓存后端,为直接使用 Redis 缓存提供了支持,但是需要 redis-py 3.0.0 或更高版本。

其它小变化

  • 新增了比 PBKDF2 算法更安全的scrypt 密码哈希算法;

  • 放弃了对Postgres SQL 9.6及之前版本的支持;

  • 新增QuerySet.contains(obj)方法,用于判定查询集中是否包含给定的对象;

  • LoginView增加了next_page属性;

  • {% ifequal %}和 {% ifnotequal %} 标签被删除;

  • request.is_ajax()方法被删除。

7cdf9f9f36bf5dd6ca77a55f90fa52c8.png

Django版本升级很快,你还在用哪个版本呢? 欢迎留言!

大江狗

推荐阅读

Django 3.2正式发布! 主要变化抢先看!

### 回答1: Django是一个流行的Web应用程序框架,它提供了一个高度复用的开发模式,使得开发者可以更加专注于业务逻辑,而不是底层实现。随着Django 4.0的发布,官方中文文档也越来越完善。 Django 4.0的中文文档提供了全面的教程、参考和指南,涵盖了Django的核心概念、API和开发实践。该文档简洁明了、易于理解,帮助开发者快速入门,并且可以帮助更有经验的开发者深入了解Django的内部工作原理。 除了基本概念和API文档,该文档还提供了一些高级主题,如数据库、模板引擎、表单验证、安全性、缓存等。此外,开发者可以从文档中了解到Django的最佳实践,如如何设计良好的模型、如何优化性能、如何进行测试等。 总之,Django 4.0的中文文档是一个非常有价值的资源,无论是对新手还是具有丰富经验的开发者都很有帮助。如果你有兴趣学习Django,无论是作为个人或公司项目的基础,还是为了求职,强烈建议你参考该文档,你一定会从中受益匪浅。 ### 回答2: Django是一个开源的Web应用框架,许多开发人员和团队使用Django来开发高质量的Web应用程序。虽然Django的官方文档是英文的,但是有许多中文热心人制作了Django的中文文档。 Django4.0Django的最新版本,中文文档也在不断更新中。Django4.0中文文档将Django的各种功能和特性作了详细的说明,并提供了许多实例和代码片段供开发人员参考和学习。 中文文档内容包括Django的开发环境搭建、模型设计、视图和模板的使用、表单和验证、静态文件、安全、中间件等等。中文文档还提供了Django的API文档和源码分析。 中文文档的制作过程是很艰苦的,制作者们为了将Django文档翻译的精准、易懂,不断阅读修改,受益的是国内众多Django爱好者。Django中文文档的出现,也为更多的开发人员提供了一个方便而全面的学习参考资料。 ### 回答3: Django 4.0 是一个非常强大的 Python Web 框架, 它的中文文档帮助用户更好地理解和使用该框架。中文文档网站提供了丰富的内容和指导,包括安装、开发流程、模型、视图、表单、模板、中间件等方面的内容,帮助用户更好地了解整个框架,并迅速上手使用。 中文文档以易懂的语言,详细介绍了 Django 4.0 的各个细节,包括如何创建项目、如何实现认证、如何使用 ORM 实现数据库的操作等,同时提供了许多实际的例子,让用户更好地理解框架的使用方式。 在文档中,透过全面的教程和案例,用户可以学习到如何搭建自己的 Web 应用程序,并且在开发的过程中,学会使用 Django 4.0 提供的各种强大功能,从而提高开发的效率和质量。 总的来说,Django 4.0 的中文文档是非常全面、详尽的,对于初学者来说非常友好,对于有经验的用户来说也提供了许多高级的用例和方法,这一切都为用户的学习和使用提供了巨大的帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值