Menü

Webframework: Django 3 bietet asynchrone Verarbeitung

Das Python-Webframework Django spricht in Version 3.0 mit MariaDB und bringt asynchrone Verarbeitung dank ASGI.

Lesezeit: 2 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 9 Beiträge

Jazz-Gitarrist Django Reinhardt, Namensgeber für das Django-Framework

(Bild: Royal Opera House Covent Garden, Flickr)

Von

Das in Python entwickelte Webframework Django ist in Version 3.0 erschienen. Die wichtigsten Neuerungen sind die Einführung asynchroner Funktionen und eine Anbindung an die Open-Source-Datenbank MariaDB. Außerdem können Entwickler für Text-, ganzzahlige und andere Felder Enumerations als Auswahl für die Inhalte definieren. Version 3.0 ist im Gegensatz zum Vorgänger Django 2.2 kein LTS-Release (Long-term Support).

MariaDB erweitert den Reigen der Datenbanken, mit denen das Framework zusammenarbeitet und der weiterhin aus PostgreSQL, Oracle, SQLite und MySQL besteht. Das Backend für Letztere dient zur Anbindung aus MariaDB, das aus einem Fork von MySQL entstanden ist. Django arbeitet mit MariaDB ab Version 10.1 zusammen.

Die markanteste Neuerung ist die Einführung asynchroner Features: Ab Version 3.0 lässt sich Django als ASGI-Anwendung ausführen (Asynchrnous Server Gateway Interface). Das Interface gilt als geistiger Nachfolger des Web Server Gateway Interface (WSGI), das im Python-Ökosystem eine Schnittstelle zwischen Webframeworks, Webservern und Anwendungsservern spezifiziert.

Während WSGI auf synchrone Webanwendungen ausgelegt ist, lässt sich ASGI zusätzlich für asynchrone Anwendungen verwenden und ist dabei auf größtmögliche Kompatibilität zum Web Server Gateway Interface ausgelegt. Django lässt sich weiterhin über die klassische WSGI-Schnittstelle verwenden, bietet damit jedoch keine asynchrone Verarbeitung.

Version 3.0 markiert laut dem Django-Blog lediglich den Anfang der Reise, auf der das Framework vollständig auf Asynchronität ausgelegt sein soll. Das Django-Team hat auf absehbare Zeit nicht vor, die WSGI-Anbindung zu kappen, sodass Entwickler synchroner Webanwendungen nicht auf ASGI wechseln müssen.

Ebenfalls neu sind die Typen TextChoices, IntegerChoices und Choices, die Entwickler als Enumeration in Form von Field.choices definieren. Die TextChoices dienen für Textfelder, die eine Auswahl vordefinierter Zeichenketten aufweisen und IntegerChoices nehmen eine Reihe ganzzahliger Werte auf. Mit Choices lassen sich andere Feldtypen mit Enumerations versehen.

Weitere Neuerungen lassen sich den Release Notes entnehmen. Django 3.0 setzt mindestens Python 3.6 voraus. Von Python 2.x hatte das Webframework sich bereits vor zwei Jahren verabschiedet. Wer nicht auf Python 3.5 verzichten will, muss den Vorgänger Django 2.2 verwenden, der als LTS-Release noch bis 2022 Support erhält. Die nächste planmäßige LTS-Variante soll Django 3.2 werden, das im April 2021 erscheinen soll. Damit wird auch der verlängerte Support von Django 3.0 enden. Der reguläre Support läuft bis zum Release von Django 3.1, das für August 2020 auf dem Plan steht.

Django blickt als Open-Source-Projekt auf eine vierzehnjä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. (rme)