Python Academy · Lekcja

Modele i migracje

Definiuj bazę danych i przeprowadzaj migracje

Lekcja 2 z 413 kroki

Modele i migracje to bezpłatna lekcja Python Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Python Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Python Academy zawiera 4 lekcji w sumie.

Modele Django

Model Django to klasa języka Python definiująca strukturę tabeli bazy danych. Każdy atrybut jest polem. Modele znajdują się w pliku models.py aplikacji.

from django.db import models

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

Typy pól

Django udostępnia wiele typów pól, które odpowiadają typom kolumn.

  • CharField do krótkiego tekstu (wymaga max_length)
  • TextField do długiego tekstu
  • 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')

Domyślny klucz główny

Django automatycznie dodaje do każdego modelu automatycznie zwiększany klucz główny id, dlatego rzadko trzeba definiować go samodzielnie.

from django.db import models

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

Opcje pól

Pola przyjmują opcje takie jak default, null, blank i unique, które określają ich działanie i sposób walidacji.

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')

Daty

DateTimeField(auto_now_add=True) zapisuje moment utworzenia wiersza. auto_now=True aktualizuje wartość przy każdym zapisie.

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')

Relacje

Połącz modele za pomocą ForeignKey, aby utworzyć relację jeden-do-wielu. on_delete informuje Django, co zrobić po usunięciu wskazywanego wiersza.

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')

Czym są migracje?

Migracje to mechanizm Django służący do przekształcania zmian w modelach w zmiany schematu bazy danych. Są odpowiednikiem kontroli wersji dla bazy danych.

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

makemigrations

python manage.py makemigrations analizuje modele i generuje pliki migracji opisujące wprowadzone zmiany.

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

migrate

python manage.py migrate stosuje oczekujące migracje do bazy danych, tworząc lub modyfikując tabele.

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

Przebieg migracji

Cykl wygląda następująco: edytuj plik models.py, uruchom makemigrations, a następnie uruchom migrate. Powtarzaj te kroki za każdym razem, gdy zmienisz modele.

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

Wykonywanie zapytań do modeli

Każdy model otrzymuje menedżera o nazwie objects, który służy do wykonywania zapytań: Post.objects.all(), .filter(), .get() i .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')

Szybki sprawdzian

Sprawdź swoją wiedzę na temat migracji.

Podsumowanie

Zdefiniowałeś modele i przeprowadziłeś ich migrację.

  • Modele to klasy w pliku models.py, zawierające pola o określonych typach
  • Django automatycznie dodaje klucz główny id
  • ForeignKey łączy modele, a on_delete określa działanie kaskadowe
  • makemigrations, a następnie migrate synchronizują bazę danych
  • Model.objects służy do wykonywania zapytań na danych
Bezpłatny start

Ucz się Python dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
76
Lekcje
320

Często zadawane pytania

Czy lekcja „Modele i migracje” jest bezpłatna?

Tak — pełny tekst „Modele i migracje” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Python Academy, przejdź na CoddyKit PRO. Kurs Python Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Modele i migracje”?

Definiuj bazę danych i przeprowadzaj migracje Ćwiczysz Python Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Python Academy?

Nie wymagamy żadnego doświadczenia. Python Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Modele i migracje”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Python Academy?

Tak. Każda lekcja Python Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Projekty i aplikacje
  2. Modele i migracje
  3. Widoki i adresy URL
  4. Panel administracyjny Django
← Powrót do Python Academy