fbpx

Django Projektstruktur und Apps

Inhalt
    Add a header to begin generating the table of contents

    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.
    Picture of Ingo Janßen

    Ingo Janßen

    Lerne nicht einfach programmieren. Löse Probleme und automatisiere Aufgaben!

    Das könnte dich auch interessieren

    Nach oben scrollen
    Newsletter Popup Form

    Keine Inhalte mehr verpassen?

    Melde dich direkt für den "Code-Kompass" an und erhalte nützliche Tipps und Informationen direkt in deinen Posteingang.