Se rendre au contenu

Django 4.0 est sorti

7 décembre 2021 par
Django 4.0 est sorti
Makersquad

Date de sortie : 7 décembre 2021

Documentation officielle : Django 4.0 release notes

Django passe en version majeure 4.0. Au programme : exit pytz, bienvenue zoneinfo. Et le cache Redis intégré nativement, c’est un package tiers de moins à gérer. Les contraintes uniques fonctionnelles sont la cerise sur le gâteau.


Les nouveautés principales

zoneinfo remplace pytz

Django utilise maintenant la bibliothèque standard zoneinfo (Python 3.9+) :

from zoneinfo import ZoneInfo
from datetime import datetime

paris_tz = ZoneInfo('Europe/Paris')
now = datetime.now(paris_tz)

pytz est déprécié et sera supprimé dans Django 5.0.


Cache Redis intégré — enfin natif !

Plus besoin de django-redis :

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.redis.RedisCache',
        'LOCATION': 'redis://127.0.0.1:6379',
    }
}


Contraintes uniques fonctionnelles

Comme les index fonctionnels, mais pour l’unicité :

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

class User(models.Model):
    email = models.EmailField()

    class Meta:
        constraints = [
            UniqueConstraint(
                Lower('email'),
                name='unique_email_case_insensitive'
            ),
        ]


Hasher scrypt

Nouvelle option de hashage plus sécurisée (nécessite OpenSSL 1.1+) :

PASSWORD_HASHERS = [
    'django.contrib.auth.hashers.ScryptPasswordHasher',
    'django.contrib.auth.hashers.PBKDF2PasswordHasher',
    # ...
]


Rendu des formulaires par templates

Les formulaires utilisent maintenant le moteur de templates :

# Personnalisation globale
FORM_RENDERER = 'django.forms.renderers.TemplatesSetting'


Autres améliorations

  • Python 3.8+ requis (fin du support 3.6/3.7)
  • startproject et startapp refactorisés
  • Amélioration du système de templates pour les formulaires

Échanger avec un expert Django

Nous revenons vers vous sous 24h.


Chez Makersquad, nous accompagnons nos clients dans la conception d’application modernes et performantes avec Django .Que vous souhaitiez lancer une nouvelle API, moderniser une architecture existante ou améliorer les performances de vos services backend, notre équipe met son expertise à votre disposition pour concevoir des solutions fiables, rapides et parfaitement adaptées à vos enjeux métier.


À retenir

Django 4.0 modernise l’infrastructure. Le passage à zoneinfo et le cache Redis natif simplifient la stack. Si vous êtes sur 3.2 LTS, pas d’urgence, mais gardez cette version en tête pour vos nouveaux projets.

Python 3.10 est sorti