0Pricing
Python Academy · Lektion

Modelle und Migrationen

Die Datenbank definieren und migrieren

Modelle und Migrationen ist eine kostenlose Python Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Python Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.

Django-Models

Ein Django-Model ist eine Python-Klasse, die die Struktur einer Datenbanktabelle definiert. Jedes Attribut ist ein Feld. Models befinden sich in der models.py einer App.

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=200)
print('Post model defined')

Feldtypen

Django stellt viele Feldtypen bereit, die auf Spaltentypen abgebildet werden.

  • CharField für kurze Texte (benötigt max_length)
  • TextField für lange Texte
  • IntegerField, BooleanField, DateTimeField
from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=200)
    body = models.TextField()
    views = models.IntegerField(default=0)
print('Fields map to columns')

Der implizite Primärschlüssel

Django fügt jedem Model automatisch einen automatisch hochzählenden Primärschlüssel id hinzu, sodass Sie nur selten selbst einen definieren müssen.

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=200)
    # 'id' is added automatically
print('id field is automatic')

Feldoptionen

Felder akzeptieren Optionen wie default, null, blank und unique, mit denen Sie Verhalten und Validierung steuern.

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=200, unique=True)
    published = models.BooleanField(default=False)
    subtitle = models.CharField(max_length=200, blank=True)
print('Options refine each field')

Datumsangaben

DateTimeField(auto_now_add=True) speichert, wann eine Zeile erstmals erstellt wurde. auto_now=True aktualisiert den Wert bei jedem Speichern.

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=200)
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)
print('Timestamps set automatically')

Beziehungen

Verknüpfen Sie Models mit ForeignKey für eine Eins-zu-viele-Beziehung. on_delete legt fest, was Django tun soll, wenn die referenzierte Zeile gelöscht wird.

from django.db import models

class Author(models.Model):
    name = models.CharField(max_length=100)

class Post(models.Model):
    author = models.ForeignKey(Author, on_delete=models.CASCADE)
print('ForeignKey links Post to Author')

Was sind Migrationen?

Migrationen sind Djangos Methode, Änderungen an Models in Änderungen am Datenbankschema umzuwandeln. Sie sind eine Versionsverwaltung für Ihre Datenbank.

# Migrations record schema changes over time
# so the database matches your models
print('Migrations track schema changes')

makemigrations

python manage.py makemigrations untersucht Ihre Models und erzeugt Migrationsdateien, die die Änderungen beschreiben.

# python manage.py makemigrations
# -> blog/migrations/0001_initial.py
print('makemigrations writes migration files')

migrate

python manage.py migrate wendet ausstehende Migrationen auf die Datenbank an und erstellt oder verändert dabei Tabellen.

# python manage.py migrate
# -> Applying blog.0001_initial... OK
print('migrate applies changes to the DB')

Der Migrationsablauf

Der Ablauf ist: Bearbeiten Sie models.py, führen Sie makemigrations aus und anschließend migrate. Wiederholen Sie diesen Ablauf, sobald sich Ihre Models ändern.

# 1. Change models.py
# 2. python manage.py makemigrations
# 3. python manage.py migrate
print('Edit, make, migrate')

Models abfragen

Jedes Model erhält für Abfragen einen Manager namens objects: Post.objects.all(), .filter(), .get() und .create().

# Post.objects.all()
# Post.objects.filter(published=True)
# Post.objects.get(id=1)
# Post.objects.create(title='Hello')
print('objects is the query manager')

Kurze Überprüfung

Testen Sie Ihr Wissen über Migrationen.

Zusammenfassung

Sie haben Models definiert und migriert.

  • Models sind Klassen in models.py mit typisierten Feldern
  • Django fügt automatisch einen Primärschlüssel id hinzu
  • ForeignKey verknüpft Models; on_delete legt das Kaskadenverhalten fest
  • makemigrations und anschließend migrate synchronisieren die Datenbank
  • Model.objects fragt die Daten ab

Häufig gestellte Fragen

Ist die Lektion „Modelle und Migrationen“ kostenlos?

Ja — der vollständige Text von „Modelle und Migrationen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Python Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Modelle und Migrationen“?

Die Datenbank definieren und migrieren Du übst Python Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Python Academy zu starten?

Keine Vorkenntnisse erforderlich. Python Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Modelle und Migrationen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Python Academy-Lektion Code schreiben und ausführen?

Ja. Jede Python Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Projekte und Apps
  2. Modelle und Migrationen
  3. Views und URLs
  4. Das Django-Admin-Interface
← Zurück zu Python Academy