Entwickeln Sie ein tiefes Verständnis für die Rollen und Funktionen von Projekten und Apps innerhalb des Django-Frameworks.
In Django können Sie zwei Hauptkomponenten verwenden, um eine Webanwendung zu erstellen; Apps und Projekte. Entwickler verwenden diese Begriffe manchmal synonym, obwohl sie im Django-Webframework unterschiedliche Bedeutungen und Funktionen haben.
Django-Projekte verstehen
In Django ist ein Projekt ein Container der obersten Ebene für Ihre Webanwendung. Ein Projekt enthält die Konfigurationen für Ihre Webanwendung und eine oder mehrere Apps, die jeweils einen bestimmten Satz an Funktionalitäten oder Features für Ihre Webanwendung bereitstellen. Es enthält auch alle Komponenten, die von den verschiedenen Apps gemeinsam genutzt werden. In einem Django-Projekt finden Sie Tools und Dienstprogramme, die die Verwaltung Ihrer Webanwendung erleichtern, z. B. das Django-Befehlszeilendienstprogramm und den Django-Entwicklungsserver.
Komponenten eines Django-Projekts
Ein Django-Projekt enthält normalerweise verschiedene Apps und die Konfigurationen Ihrer Webanwendung. Immer wenn Sie ein neues Projekt erstellen, generiert Django automatisch Dateien mit diesen Konfigurationen. Die in einem Django-Projekt enthaltenen Komponenten sind:
- Einstellungen: Das Einstellungsmodul enthält Konfigurationen, die für Ihr Projekt und die einzelnen Apps in Ihrem Projekt erforderlich sind. Dieses Modul enthält hauptsächlich Konfigurationsoptionen wie Datenbankverbindung, Middleware, installierte App, zulässige Hosts und andere Konfigurationen, die für die Funktion Ihrer Web-App erforderlich sind.
- URLs: Das URL-Modul definiert ein URL-Muster für Ihre Anwendung. Jedes URL-Muster in Ihrem Projekt kann entweder einem anderen URL-Muster in Ihrer App oder direkt einer Ansichtsfunktion zugeordnet werden, die die Anfrage für die spezifische URL verarbeitet. Unabhängig davon, ob das URL-Muster einer Ansichtsfunktion oder einem anderen URL-Muster in Ihrer App zugeordnet ist, besteht das ultimative Ziel darin, es einer Ansicht zuzuordnen, die die Anfrage effektiv verarbeitet.
- WSGI: Das WSGI-Modul (Web Server Gateway Interface) ist der Python-Standard für Webserver und Anwendungen. Das WSGI-Modul ermöglicht die Ausführung von Django auf verschiedenen Servern.
- ASGI: Das ASGI-Modul (Asynchronous Server Gateway Interface) verarbeitet asynchrone Anforderungen wie z WebSockets-Verbindungen. ASGI ist ein Standard für asynchrone Webserver zur Kommunikation mit Python-Webanwendungen.
- Andere Komponenten: Abhängig von den Anforderungen Ihrer Anwendung müssen Sie manchmal Ihre eigenen Komponenten zu Ihrem Django-Projekt hinzufügen. Zu diesen Komponenten gehören statische Dateien, Vorlagen, Mediendateien und benutzerdefinierte Verwaltungsbefehle.
So erstellen Sie ein Django-Projekt
Um ein Django-Projekt zu erstellen, sollten Sie das verwenden django-admin Befehlszeilen-Dienstprogramm. Sie können Ihr Django-Projekt erstellen, indem Sie die folgenden Schritte ausführen:
- Navigieren Sie in Ihrer Befehlszeilenschnittstelle zu dem Verzeichnis, in dem Sie Ihr Django-Projekt erstellen möchten.
- Installieren Sie Django mit dem Pip-Paketmanager.
Pip Django installieren
- Geben Sie den folgenden Befehl ein und führen Sie ihn aus:
django-admin startprojekt
Der obige Befehl erstellt ein Verzeichnis wie dieses:
Sie werden eine Redundanz in den Namen Ihres Projektverzeichnisses feststellen, d. h. Ihr Projektname erscheint zweimal. Wenn Sie dies vermeiden möchten, können Sie beim Ausführen Ihres Kontos einen Zeitraum hinzufügen Startprojekt Befehl wie folgt:
django-admin startprojekt .
Nun sieht Ihre Projektstruktur wie folgt aus:
Mit den oben genannten Schritten müssen Sie erfolgreich ein Django-Projekt erstellt haben. Der manage.py Die in Ihrem Projekt erstellte Datei ist wichtig für die Interaktion mit Ihrem Django-Projekt.
Eine Django-App verstehen
Der Zweck einer App besteht darin, Ihrem Django-Projekt bestimmte Funktionen bereitzustellen. Eine App hilft Ihnen bei der Organisation Ihrer Codebasis, indem sie die Funktionalitäten Ihres Projekts in kleinere Komponenten aufteilt.
In einem Blog-Projekt verfügen Sie beispielsweise über eine App für die Authentifizierung und Autorisierung und eine andere für Blog-Beiträge. Sie können mehrere Apps basierend auf den spezifischen Anforderungen Ihres Projekts erstellen.
Komponenten einer Django-App
Eine Django-App besteht aus Modulen, die sich auf das Projekt beziehen, also auf eine bestimmte Funktion Ihrer Website. Wie bei einem Projekt generiert Django automatisch hilfreiche Dateien, wenn Sie eine App erstellen. Die von Django generierten Dateien umfassen Folgendes:
- Ansichten.py: Diese Datei enthält die gesamte Logik, die zum Empfangen von Anfragen und Senden von Antworten erforderlich ist. Außerdem wird basierend auf den Aktionen des Benutzers auf Ihrer Website bestimmt, welche HTML-Vorlage gerendert werden soll.
- models.py: Dieses Modul erstellt die Datenstruktur Ihrer App und bestimmt, wie die Datenbank sie speichert. Es verwendet Djangos ORM (Object-Relational Mapping), um die Daten zu definieren. Die Modellkomponente definiert verschiedene Datenbankbeziehungen in Django.
- admin.py: Das Admin-Modul definiert die Administrationsoberfläche Ihrer Django-App. Sie sollten Ihre Modelle in der Admin-Datei registrieren. Wenn Sie über die von Django bereitgestellten hinaus zusätzliche Admin-Funktionalitäten benötigen, können Sie in diesem Modul benutzerdefinierte Ansichten für Ihre Admin-Oberfläche definieren.
- urls.py: Diese Datei definiert die URL-Muster oder Routen, die für eine bestimmte Django-App eindeutig sind. Manchmal generiert Django diese Datei nicht automatisch. In diesem Fall können Sie es manuell in Ihrem App-Verzeichnis erstellen.
Django generiert einige andere Komponenten, wie z apps.py Und tests.py. Diese Dateien definieren Ihre App-Konfigurationen und ermöglichen Ihnen das Schreiben von Komponententests.
So erstellen Sie eine Django-App
Bevor Sie eine App erstellen, müssen Sie ein Projekt erstellt haben. Navigieren Sie nach dem Erstellen Ihres Projekts zu dem Verzeichnis, das Folgendes enthält manage.py Datei und führen Sie den folgenden Befehl in Ihrem Terminal aus:
Python manage.py Startprojekt
Der obige Befehl erstellt eine Ordnerstruktur wie diese auf derselben Verzeichnisebene wie Ihr Projekt:
Unterschied zwischen einer App und einem Projekt in Django
Es gibt einige deutliche Unterschiede zwischen einem Projekt und einer App in Django. Einige davon sind unten aufgeführt.
Wiederverwendbarkeit des Codes
In Django ist eine App eine wiederverwendbare Komponente Ihrer Webanwendung. Das bedeutet, dass Sie, wenn Sie über eine App verfügen, die die Benutzerauthentifizierung für ein Projekt übernimmt, dieselbe App in einem anderen Projekt ohne oder mit geringen Änderungen wiederverwenden können. Ein Projekt hingegen ist nicht wiederverwendbar. Sobald Sie ein Projekt für eine bestimmte Webanwendung erstellt haben, können Sie es nicht mehr für eine andere Anwendung verwenden.
Leistungsumfang
Ein Projekt operiert auf einer höheren Ebene als eine App, da es für die Gesamtkonfiguration und -verwaltung Ihrer Website verantwortlich ist. Andererseits ist eine App nur für eine bestimmte Funktion oder Funktionalität Ihrer Website verantwortlich.
Ordnerstruktur
Der offensichtlichste Unterschied zwischen einer App und einem Projekt sind ihre Ordnerstrukturen. Ein Projekt umfasst normalerweise Einstellungen und andere Konfigurationsdateien, die für das Wohlergehen Ihrer Website verantwortlich sind.
Es folgt eine App Djangos MVT-Architektur. Es enthält nur Dateien und Konfigurationen, die für das Funktionieren einer bestimmten Funktion Ihrer Website verantwortlich sind.
Ihr Projekt und Ihre App arbeiten zusammen, um eine gute Webanwendung zu erstellen
Obwohl Ihr Projekt und Ihre App ihre Einzigartigkeit aufweisen, dienen sie letztendlich dazu, Ihnen ein nahtloses Erlebnis beim Erstellen Ihrer Anwendung zu bieten. Sie sollten in der Lage sein, sowohl die Projekt- als auch die App-Komponenten zu kombinieren, um Ihre Webanwendung zu erstellen und anzupassen. Sobald Ihre App und Ihr Projekt eingerichtet sind, können Sie mit der Erstellung Ihrer Website mit Django beginnen.