Webframework: Django 4 wechselt die Zeitzone

Neben dem Wechsel auf die Zeitzonen-Implementierung der Standard-Library von Python bringt die neue Hauptversion eine Anbindung an Redis als Cache.

Lesezeit: 3 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen

(Bild: William P. Gottlieb Collection des Library of Congress, gemeinfrei)

Von
  • Rainald Menge-Sonnentag

Das in Python entwickelte Open-Source-Webframework Django ist in Version 4.0 erschienen. Das Release hat ein neues Backend zum Caching mit Redis an Bord. Außerdem gibt es Änderungen bei der Zeitzonen-Implementierung und beim Rendern von Forms und Formsets.

Mit der neuen Hauptversion sind zwei Updates für die 3er Serie erschienen: 3.2.10 markiert das Ende des Mainstream-Supports für Version 3.2. Da es sich dabei um ein LTS-Release (Long-term Support) handelt, wird es Security-Updates und Bugfixes zum Verhindern von Datenverlust bis April 2024 geben. Die ebenfalls frische Version 3.1.14 ist dagegen das letzte Security-Update für Django 3.1.

Nachdem das Framework ursprünglich für die Verarbeitung von Zeitzonen grundsätzlich auf pytz gesetzt hatte, erlaubte 3.2 auch die Anbindungen anderer Implementierungen. Version 4 wechselt nun standardmäßig auf die Python-Standard-Library zoneinfo. Für vorhandenen Code sind wohl kaum Anpassungen erforderlich.

Allerdings sollten Entwicklerinnen und Entwickler, die auf die Funktionen normalize() oder localize() in Kombination mit TIME_ZONE setzen, ihren Code überprüfen, da sich die Libraries dabei laut den Release Notes zu Django 4.0 nicht völlig äquivalent verhalten.

Für die 4er Serie des Webframeworks gilt pytz zwar als überholt (deprecated) lässt sich aber weiter verwenden. Zum Aktivieren dient die Einstellung USE_DEPRECATED_PYTZ. Standardmäßig ist sie auf false gesetzt. Mit Django 5 entfällt die Anbindung an pytz.

Die Klassen Form, Formset und ErrorList nutzen neuerdings für das Rendern die Template-Engine, um eine flexiblere Darstellung zu ermöglichen. Die Umstellungen bringt einige neue Funktionen wie render(), get_context() und template_name mit sich.

Django bietet zudem neuerdings eine direkte Integration für die In-Memory-Datenbank Redis als Cache über das RedisCache-Backend. Details finden sich in der Dokumentation zum Cache-Framework.

Django blickt als Open-Source-Projekt auf eine sechzehnjährige Geschichte zurück und kommt unter anderem bei Instagram, Mozilla, Bitbucket und der Washington Times zum Einsatz. Das seit 2008 unter der Verwaltung der Django Software Foundation stehende Framework entstand ursprünglich 2003 bei der Newsseite der Tageszeitung Lawrence Journal-World.

Das Framework, das seinen Namen dem Jazz-Gitarristen Django Reinhardt verdankt, setzt auf das MVC-Prinzip (Model View Controller) zum Unterteilen der Software in Datenmodell, Präsentation und Programmsteuerung. Die Macher sprechen in der FAQ von einer abgewandelten Form, die aus Modell, Vorlage und Präsentation besteht und daher eigentlich MTV für Model, Template View heißen müsste.

Weitere Details zu Django 4.0 lassen sich dem Blogbeitrag entnehmen. Eine vollständige Übersicht bieten die Release Notes.

(rme)