Hinweis perev .: Dieser Artikel richtet sich hauptsächlich an diejenigen, die nur ein Framework für die Webentwicklung auswählen. Erfahrene Django-Entwickler werden wahrscheinlich nichts Neues lernen.
Django wird als "Web-Framework für Perfektionisten mit Fristen" beschrieben. Es wurde entwickelt, um so schnell wie möglich von Prototypen zu vorgefertigten Services zu wechseln.
Das Framework hilft bei der Entwicklung einer schlüsselfertigen CRUD-Anwendung. Django muss das Rad nicht neu erfinden. Es funktioniert sofort und ermöglicht es Ihnen, sich auf Geschäftslogik und Produkte für normale Menschen zu konzentrieren.
Vorteile von Django
Das Prinzip "All Inclusive" ("Batterien inklusive")
Der Ausdruck „All-Inclusive“ bedeutet, dass die meisten Tools zum Erstellen einer Anwendung Teil des Frameworks sind und nicht in separaten Bibliotheken enthalten sind.
Django enthält eine Vielzahl von Funktionen zur Lösung der meisten Webentwicklungsaufgaben. Hier sind einige der wichtigsten Funktionen von Django, nach denen Sie separat suchen müssen, wenn Sie ein Mikro-Framework bevorzugen:
- ORM
- Datenbankmigrationen
- Benutzerauthentifizierung
- Admin-Bereich
- Formulare
Standardisierte Struktur
Django als Framework definiert die Projektstruktur. Es hilft Entwicklern zu verstehen, wo und wie neue Funktionen hinzugefügt werden können.
Dank der gleichen Struktur für alle Projekte ist es viel einfacher, vorgefertigte Lösungen zu finden oder Hilfe von der Community zu erhalten. Eine große Anzahl begeisterter Entwickler wird dabei helfen, jede Aufgabe viel schneller zu bewältigen.
Django Apps
Mit Anwendungen in Django können Sie ein Projekt in mehrere Teile aufteilen. Anwendungen werden durch Hinzufügen zu settings.INSTALLED_APPS installiert. Dieser Ansatz erleichtert die Integration schlüsselfertiger Lösungen.
Hunderte von Universalmodulen und -anwendungen werden die Entwicklung erheblich beschleunigen. Schauen Sie sich die Liste unter djangopackages.org an .
Standardmäßig sicher
Django ist sofort einsatzbereit und enthält Mechanismen zur Verhinderung häufiger Angriffe wie SQL Injection (XSS) und Cross-Site Request Forgery (CSRF). Weitere Informationen hierzu finden Sie im offiziellen Sicherheitshandbuch .
REST Framework zum Erstellen einer API
Das Django REST Framework, oft mit „DRF“ abgekürzt, ist eine Bibliothek zum Erstellen von APIs. Es verfügt über eine modulare und anpassbare Architektur, mit der sowohl einfache als auch komplexe APIs erstellt werden können.
In DRF sind Authentifizierungs- und Berechtigungsrichtlinien sofort verfügbar. Es enthält Basisklassen für CRUD-Operationen und ein integriertes Dienstprogramm zum Testen der entwickelten API.
GraphQL API Framework
Große REST-APIs erfordern häufig eine große Anzahl von Anforderungen, um alle erforderlichen Daten abzurufen. GraphQL ist eine Abfragesprache, die den Austausch verwandter Daten erheblich erleichtert. Weitere Informationen zu den grundlegenden GraphQL-Konzepten finden Sie in der offiziellen Dokumentation .
Mit Graphen-Django können Sie Ihrem Projekt ganz einfach die entsprechende Funktionalität hinzufügen. Djangos Modelle, Formulare, Authentifizierung, Berechtigungsrichtlinien und andere Funktionen können zum Erstellen der GraphQL-API verwendet werden. Die Bibliothek enthält auch ein Dienstprogramm zum Testen des Ergebnisses.
Nachteile von Django
Django orm
Django ORM ist heute der neuesten SQLAlchemy deutlich unterlegen.
Django ORM basiert auf der Active Record-Vorlage, die schlechter ist als die in SQLAlchemy verwendete Arbeitseinheitenvorlage. In der Praxis drückt sich dies darin aus, dass sich Django-Modelle nach Belieben „speichern“ können und Transaktionen standardmäßig deaktiviert sind. Weitere Informationen hierzu finden Sie im Artikel „Dinge, die ich in Django nicht mag“ .
Django entwickelt sich langsam
Django ist ein großes und monolithisches Gerüst. Dies ermöglicht der Community die Entwicklung von Hunderten von generischen Modulen und Anwendungen, verlangsamt jedoch die Entwicklungsgeschwindigkeit von Django. Darüber hinaus muss das Framework die Abwärtskompatibilität unterstützen, sodass es sich relativ langsam entwickelt.
Fazit: Soll ich Django wählen?
Obwohl Django ORM nicht so flexibel ist wie SQLAlchemy und ein großes Ökosystem wiederverwendbarer Module und Anwendungen die Entwicklung der Infrastruktur verlangsamt, sollte Django offensichtlich der erste Kandidat für die Rolle eines Python-Frameworks sein.
Alternative Lightweight-Frameworks wie Flask ermöglichen es Ihnen möglicherweise, langfristig mehr Bibliotheken und Funktionen zu suchen / zu erstellen, obwohl Sie damit im Ökosystem und in der Konfiguration freier als Django sind.
Die Stabilität von Django und seiner Umgebung ist seit seiner ersten Veröffentlichung auf eine unvorstellbare Größe angewachsen. Die offiziellen Dokumentationen und Tutorials zum Framework gehören zu den besten ihrer Art. Und mit jeder neuen Version von Django wachsen die Möglichkeiten weiter.