API Stabilität
Diese Dokumentation gilt für Djangos Entwicklerversion, die zum Teil erhebliche Unterschiede zur letzten veröffentlichen Version aufweist.
Auch wenn Django noch nicht Version 1.0 erreicht hat, sind die meisten dokumentierten APIs seit Version 0.95 “stabil”. Dieses Dokument erklärt, welche APIs noch vor Version 1.0 verändert werden und welche nicht.
Was “stabil” bedeutet
In diesem Kontext bedeutet “stabil”:
- Alle öffentlichen APIs — also alles mit verlinkter Dokumentation und alle Methoden, die nicht mit einem Unterstrich beginnen — werden nicht verschoben oder umbenannt, ohne das rückwärts-kompatible Aliase angeboten werden.
- Wenn neue Features zu diesen APIs hinzugefügt werden — was recht wahrscheinlich ist — werden sie die Funktion existierender Methoden nicht beinträchtigen oder verändern. Das heißt: “stabil” bedeutet nicht (unbedingt) “vollständig”.
- Sollte aus irgendeinem Grund eine “stabile” API entfernt oder ersetzt werden müssen, wird die API nur als “veraltet” markiert und bis Version 1.1 im Code erhalten bleiben. Wenn “veraltete” APIs benutzt werden, erscheinen hinweisende Warnungen.
- Wir werden die Rückwärts-Kompatibilität der APIs nur dann gefährden oder beinträchtigen, wenn es wegen einem Fehler oder eines Sicherheitslochs unausweichlich ist.
“Stabile” APIs
Diese APIs sind “stabil”:
- Cache.
- Eigene Template Tags und Bibliotheken (möglicherweise mit der Ausnahme, dass die Art, wie Templates registriert und geladen werden, ein wenig verändert wird)
- Datenbank-Abfragen (außer die Validierung, siehe unten).
- django-admin Utility.
- FastCGI Integration.
- Flatpages.
- Generic views.
- Internationalisierung.
- Integration mit alten Datenbanken.
- Definition von Datenmodellen (außer generische Relationen, siehe unten).
- mod_python Integration.
- Umleitungen.
- Request/Response Objekte.
- E-Mails versenden.
- Sessions.
- Einstellungen.
- Feeds.
- Template Sprache (außer einige Erklärungen zur Funktionsweise von Tag-Argumenten beim Übegeben an Tags und Filter)
- Transaktionen.
- URL Verwaltung.
Wahrscheinlich hast du schon bemerkt, dass diese Liste den Großteil von Djangos APIs umfasst — die meisten geplanten Änderungen vor der Veröffentlichung von Django 1.0 finden entweder unter der Haube statt, sind neue Funktionen oder nur kleine Teiländerungen. Ungefähr 90% von Django können momentan als vorwärts-kompatibel angesehen werden.
Allerdings sollten die folgenden APIs als nicht stabil angesehen werden, da sie sehr wahrscheinlich verändert werden:
- Serialisierung wird gerade umgebaut, Änderungen sind wahrscheinlich.
- Das Authentifizierung Framework wird umgebaut, damit es noch flexibler ist, wodurch API Änderungen unausweichlich sind.
- Generische Relationen werden sehr wahrscheinlich aus dem “core” entfernt werden und in das “content-types” Contrib-Paket verschoben, um Abhängigkeiten zu optionalen Komponenten zu verhindern.
- Das Kommentar Framework, das noch nicht dokumentiert ist, wird wahrscheinlich für Django 1.0 komplett neu geschrieben werden. Auch wenn die Änderungen nicht so drastisch sein werden, sind trotzdem vorhanden.