Modeller og migreringer
Definer og migrer databasen
Modeller og migreringer er en gratis leksjon i Python Academy på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Python Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Python Academy inneholder totalt 4 leksjoner.
Django-modeller
En Django-modell er en Python-klasse som definerer strukturen til en databasetabell. Hvert attributt er et felt. Modeller ligger i en apps models.py.
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200)
print('Post model defined')Felttyper
Django tilbyr mange felttyper som tilsvarer kolonnetyper.
CharFieldfor kort tekst (krevermax_length)TextFieldfor lang tekstIntegerField,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')Den implisitte primærnøkkelen
Django legger automatisk til en autoinnkrementerende id-primærnøkkel i hver modell, så du trenger sjelden å deklarere en selv.
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200)
# 'id' is added automatically
print('id field is automatic')Feltalternativer
Felter godtar alternativer som default, null, blank og unique for å styre oppførsel og validering.
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')Datoer
DateTimeField(auto_now_add=True) registrerer når en rad først ble opprettet. auto_now=True oppdaterer verdien ved hver lagring.
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')Relasjoner
Koble modeller sammen med ForeignKey for en-til-mange-relasjoner. on_delete forteller Django hva som skal skje når den refererte raden slettes.
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')Hva er migreringer?
Migreringer er Djangos måte å gjøre modellendringer om til endringer i databaseskjemaet på. De fungerer som versjonskontroll for databasen.
# Migrations record schema changes over time
# so the database matches your models
print('Migrations track schema changes')makemigrations
python manage.py makemigrations undersøker modellene dine og genererer migreringsfiler som beskriver endringene.
# python manage.py makemigrations
# -> blog/migrations/0001_initial.py
print('makemigrations writes migration files')migrate
python manage.py migrate bruker ventende migreringer på databasen og oppretter eller endrer tabeller.
# python manage.py migrate
# -> Applying blog.0001_initial... OK
print('migrate applies changes to the DB')Migreringsarbeidsflyten
Syklusen er: rediger models.py, kjør makemigrations, og kjør deretter migrate. Gjenta dette hver gang modellene dine endres.
# 1. Change models.py
# 2. python manage.py makemigrations
# 3. python manage.py migrate
print('Edit, make, migrate')Spørre modeller
Hver modell får en manager kalt objects for spørringer: Post.objects.all(), .filter(), .get() og .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')Hurtigsjekk
Test kunnskapene dine om migreringer.
Oppsummering
Du har definert modeller og migrert dem.
- Modeller er klasser i
models.pymed typede felter - Django legger til en automatisk
id-primærnøkkel ForeignKeykobler modeller sammen;on_deleteangir kaskadeoppførselenmakemigrationsetterfulgt avmigratesynkroniserer databasenModel.objectsbrukes til å spørre dataene
Lær deg Python med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 76
- Leksjoner
- 320
Ofte stilte spørsmål
Er leksjonen «Modeller og migreringer» gratis?
Ja – hele teksten i «Modeller og migreringer» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Python Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Python Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Modeller og migreringer»?
Definer og migrer databasen Du øver på Python Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Python Academy?
Ingen tidligere erfaring er nødvendig. Python Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.
Hvor lang tid tar leksjonen «Modeller og migreringer»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Python Academy-leksjonen?
Ja. Alle Python Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Prosjekter og apper
- Modeller og migreringer
- Visninger og URL-er
- Django-administrasjonen