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 進行快取的。
基於模板的表單渲染
為了提高客製化、 和,開發者現在正在使用的模板引擎進行渲染。
詳細更新說明檢視。