Django 4.0 alpha 1 釋出

2021-09-23 09:00:17

Django 4.0 了首個 alpha 版本,標誌著已進入功能凍結階段。開發團隊稱計劃在未來一個月內釋出 beta 測試版,然後在測試版釋出一個月後推出 RC 候選版。

下載地址:

Django 4.0 主要變化

使用zoneinfo作為預設時區實現

Python 標準庫現在是 Django 的預設時區實現。其中pytz的支援已棄用,並將在 Django 5.0 中刪除。

根據開發團隊的介紹,轉向後,當前時區的選擇、將日期時間範例轉換為表單和模板中的當前時區以及對 UTC 中的 aware datetimes 的操作不受影響。

函數式的唯一約束

的新positional 引數可以在表示式和資料庫函數上建立函數式唯一約束。例如:

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 快取提供了內建支援。此功能 3.0.0 或更高版本。有關更多詳細資訊,請檢視有關在 Django 中使用 Redis 進行快取的。

基於模板的表單渲染

為了提高客製化、 和,開發者現在正在使用的模板引擎進行渲染。

詳細更新說明檢視。

展開閱讀全文