Im letzten Beitrag haben wir schon ein Django Projekt erzeugt und kurz gesehen, wie der Server gestartet wird. Heute bauen wir darauf auf und erstellen die erste Django-App. Dabei siehst du, wie die Django Projektstruktur aufgebaut ist und wie du mit den einzelnen Dateien umzugehen hast. Lass uns keine Zeit verlieren und direkt loslegen!
Django Projektstruktur verstehen
Bevor wir in die Details einsteigen, lass uns einen Überblick über die Django Projektstruktur verschaffen. Wenn Du ein neues Django-Projekt erstellst, werden automatisch mehrere Dateien und Verzeichnisse generiert. Hier ist eine typische Struktur:
meine_webseite/
manage.py
meine_webseite/
__init__.py
settings.py
urls.py
wsgi.py
- manage.py: Ein Skript, mit dem Du verschiedene Django-Kommandos ausführen kannst, wie z.B. den Entwicklungsserver starten oder Migrationen durchführen.
- meine_webseite/: Dieses Verzeichnis enthält die Hauptkonfigurationsdateien Deines Projekts.
- __init.py__: Eine leere Datei, die dieses Verzeichnis als ein Python-Paket kennzeichnet.
- settings.py: Die Konfiguration für Dein Django-Projekt. Hier konfigurierst Du Datenbankverbindungen, installierte Apps und vieles mehr.
- urls.py: Die URL-Routing-Konfiguration. Hier definierst Du, welche URLs auf welche Views (Seiten) verweisen.
- wsgi.py: Ein Skript, das Dein Projekt auf einem WSGI-kompatiblen Webserver bereitstellt. Die Datei brauchst du erst ganz zum Schluss, wenn Du Dein Projekt bereitstellen willst.
Erstellen einer neuen Django-App
Nachdem wir die Projektstruktur verstanden haben, erstellen wir nun eine neue App innerhalb unseres Projekts. Eine App in Django ist ein Modul, das eine bestimmte Funktionalität implementiert und eigenständig entwickelt werden kann. Jeder thematisch unabhängige Bereich wird praktisch durch eine App repräsentiert.
Um Dir ein Beispiel zu geben, kannst Du in einem Online-Shop eigene Apps für Suche, Benutzerverwaltung und Produkte haben. Wie Du Apps strukturierst, hängt allerdings sehr davon ab, was Dein Projekt ist und wie Du es am besten aufteilen kannst. Da gibt es kein striktes “richtig oder falsch”.
Schritt 1: Neue App erstellen
Um eine neue App zu erstellen, verwende den Befehl startapp. Öffne Dein Terminal im Hauptverzeichnis Deines Projekts und gib ein:
python manage.py startapp unternehmen
Dieser Befehl erzeugt eine neue App namens unternehmen mit folgender Struktur:
unternehmen/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
- admin.py: Hier kannst Du die Django-Admin-Oberfläche für Deine Modelle konfigurieren.
- apps.py: Konfigurationsdatei der App. Die musst du in der Regel nicht anfassen.
- migrations/: Verzeichnis für Datenbankmigrationen.
- __init.py__: Eine leere Datei, die dieses Verzeichnis als ein Python-Paket kennzeichnet.
- models.py: Hier definierst Du die Datenbankmodelle Deiner App. Du legst also Tabellen mit ihren Spalten an.
- tests.py: Hier schreibst Du Tests für Deine App.
- views.py: Hier definierst Du die Views, also die Logik, die bestimmt, welche Daten angezeigt und wie sie verarbeitet werden und welche Templates genutzt werden sollen.
Schritt 2: App registrieren
Um die neue App in Deinem Projekt zu nutzen, musst Du sie in der settings.py-Datei registrieren. Eine App die nicht registriert ist, wird von Django nicht erkannt und nicht geladen. So kannst Du übrigens auch neue Apps entwickeln, ohne sie direkt bereitzustellen und ggf. etwas kaputt zu machen. Du musst sie einfach nur nicht registrieren und damit nicht laden. Öffne meine_webseite/settings.py und füge unternehmen zur INSTALLED_APPS-Liste hinzu:
INSTALLED_APPS = [
... # hier sind bereits Apps registriert. Lass die so stehen.
'myapp',
]
3. URLs konfigurieren
Damit Django die Views Deiner neuen App aufrufen kann, musst Du die URLs konfigurieren. Erstelle eine Datei namens urls.py im Verzeichnis Deiner App unternehmen und füge folgende Inhalte hinzu:
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
Öffne dann die urls.py-Datei Deines Projekts meine_webseite/meine_webseite/urls.py und füge eine Referenz auf die URLs Deiner App hinzu:
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('unternehmen.urls')), # jede URL auf der Basisebene wird an deine App weitergeleitet
]
4. Erstellen einer View
Erstelle nun eine einfache View in unternehmen/views.py, die eine HttpResponse zurückgibt:
from django.http import HttpResponse
def index(request):
return HttpResponse("Hallo Welt! Das ist meine Firma.")
Starte den Entwicklungsserver erneut:
python manage.py runserver
Navigiere zu http://127.0.0.1:8000/ und Du solltest die Nachricht “Hallo Welt! Das ist meine Firma.” sehen.
Herzlichen Glückwunsch! Du hast Dein erstes Django-Projekt und eine neue App erstellt und registriert. Du verstehst jetzt die grundlegende Django-Projektstruktur und wie Du eine App erstellst und registrierst. Im nächsten Kapitel werden wir uns mit der Erstellung und Registrierung von Datenbankmodellen beschäftigen.
Neugierig auf mehr? Schau Dir die vollständige Reihe hier an und starte Deine Reise zur Webentwicklung mit Django. Du bist eher der Typ für Videos? Dann schau gerne bei meinem YouTube Kanal vorbei!
Bleib dran und happy coding! 🚀
Technisches Fachjargon vereinfachen
- Framework: Ein Satz von Werkzeugen und Bibliotheken, die die Entwicklung von Software vereinfachen.
- Projekt: Eine Sammlung von Dateien und Einstellungen, die zusammenarbeiten, um eine Anwendung zu bilden.
- manage.py: Ein Skript, mit dem Du verschiedene Aufgaben in Deinem Django-Projekt ausführen kannst, wie z.B. den Entwicklungsserver starten oder Datenbankmigrationen durchführen.
- settings.py: Eine Datei, in der alle Konfigurationseinstellungen Deines Projekts gespeichert sind, wie z.B. Datenbankinformationen und installierte Apps.
- urls.py: Eine Datei, die festlegt, welche URL auf welche Funktion (View) verweist.
- WSGI: Eine Schnittstelle, die zwischen Deinem Django-Projekt und dem Webserver vermittelt und dafür sorgt, dass Deine Anwendung im Internet erreichbar ist.
- App: Ein Modul innerhalb eines Projekts, das eine bestimmte Funktionalität implementiert.
- views.py: Der Teil des Codes, der bestimmt, welche Daten angezeigt werden und wie sie verarbeitet werden.
- models.py: Ein Teil des Codes, der die Struktur der Datenbank beschreibt.
![Ingo Janssen](https://ingo-janssen.de/wp-content/uploads/2020/09/Ingo-Janssen-Kopie.png)
Ingo Janssen ist ein Softwareentwickler mit über 10 Jahren Erfahrung in der Leitung seines eigenen Unternehmens.
Er studierte Wirtschaftsinformatik an der TH Deggendorf und hat Softwareentwicklung an der FOM Hochschule in München unterrichtet.
Ingo hat mit einer Vielzahl von Unternehmen zusammengearbeitet, von kleinen und mittelständischen Unternehmen bis hin zu MDAX- und DAX-gelisteten Unternehmen.
Ingo ist leidenschaftlich daran interessiert, sein Wissen und seine Expertise mit anderen zu teilen. Aus diesem Grund betreibt er einen YouTube-Kanal mit Programmier-Tutorials und eine Discord-Community, in der Entwickler miteinander in Kontakt treten und voneinander lernen können.
Sie können Ingo auch auf LinkedIn, Xing und Gulp finden, wo er Updates über seine Arbeit teilt und Einblicke in die Tech-Branche gibt.
YouTube | Discord | LinkedIn | Xing | Gulp Profile