Django 4.0 alpha 1 发布

来源: OSCHINA
编辑:
2021-09-23 07:56:00

Django 4.0 发布了首个 alpha 版本,标志着已进入功能冻结阶段。开发团队称计划在未来一个月内发布 beta 测试版,然后在测试版发布一个月后推出 RC 候选版。

下载地址:https://www.djangoproject.com/download/

Django 4.0 主要变化

使用zoneinfo作为默认时区实现

Python 标准库zoneinfo现在是 Django 的默认时区实现。其中pytz的支持已弃用,并将在 Django 5.0 中删除。

根据开发团队的介绍,转向zoneinfo后,当前时区的选择、将日期时间实例转换为表单和模板中的当前时区以及对 UTC 中的 aware datetimes 的操作不受影响。

函数式的唯一约束

UniqueConstraint()的新*expressionspositional 参数可以在表达式和数据库函数上创建函数式唯一约束。例如:

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:
        indexes = [
            UniqueConstraint(
                Lower('first_name'),
                Lower('last_name').desc(),
                name='first_last_name_unique',
            ),
        ]

增加scrypt密码哈希器

新的scrypt密码哈希器比 PBKDF2 更安全,建议使用。但它不是默认选项,因为它需要 OpenSSL 1.1 以上版本和更多的内存。

Redis 缓存后端

新的django.core.cache.backends.redis.RedisCache缓存后端为使用 Redis 缓存提供了内置支持。此功能需要 redis-py 3.0.0 或更高版本。有关更多详细信息,请查看有关在 Django 中使用 Redis 进行缓存的文档

基于模板的表单渲染

为了提高定制FormsFormsets ErrorList,开发者现在正在使用的模板引擎进行渲染。

详细更新说明查看 release notes

展开阅读全文
点击加入讨论🔥(3) 发布并加入讨论🔥
3 评论
1 收藏
分享
返回顶部
顶部