Definiera ett schema för en modell
Deklarera fält som mappar till din modell.
Definiera ett schema för en modell är en gratis lektion i Flask Academy på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Flask Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Flask Academy innehåller totalt 4 lektioner.
Vad ett schema är
Ett Schema är en Python-klass som listar vilka fält dina data ska ha. Det speglar en modell men finns separat och används bara för in- och utdata.
Ärv från Schema
Varje schema ärver från Marshmallows basklass Schema. Om du döper det efter modellen, till exempel UserSchema, blir syftet tydligt direkt.
class UserSchema(Schema):
passDeklarera fält
Inuti klassen lägger du till attribut från modulen fields. Varje attribut anger en nyckel som visas i den serialiserade JSON-utdatan.
id = fields.Int()
name = fields.Str()Fälttyper spelar roll
Välj en fälttyp som passar datan: Int, Str, Bool, Float eller DateTime. Typen styr hur värden formateras och valideras.
active = fields.Bool()
score = fields.Float()Hantera datum på rätt sätt
Ett DateTime-fält serialiserar automatiskt Pythons datetime-värden till rena ISO-strängar. Du slipper manuell formatering utspridd i vyerna.
created_at = fields.DateTime()Markera obligatoriska fält
Skicka required=True till ett fält så att inläsningen misslyckas om det saknas. Det här är ditt första exempel på validering som är inbyggd direkt i schemat.
email = fields.Str(required=True)Utelämna hemligheter
Lista bara de fält du vill exponera. Genom att helt enkelt inte deklarera password_hash kan schemat aldrig läcka ut det i ett svar.
Byt namn med data_key
Vill du ha camelCase i JSON från ett snake_case-attribut? Använd data_key för att koppla ett internt namn till en annan extern nyckel.
first_name = fields.Str(data_key="firstName")Fält med dump_only
Vissa fält, som ett id, ska visas i utdata men aldrig accepteras som indata. Markera dem som dump_only så förblir de skrivskyddade.
id = fields.Int(dump_only=True)Skapa en instans av schemat
Skapa en instans som du kan återanvända: user_schema är lika med UserSchema(). Skicka med many=True senare när du serialiserar en hel lista.
user_schema = UserSchema()Ett schema, två uppgifter
Den här enda klassen dumpar både modeller till JSON och läser in JSON som kontrollerade data. Du definierar strukturen en gång och använder den i båda riktningarna.
Snabbkontroll
Du vill att id ska vara läsbart i utdata men aldrig accepteras som indata.
Repetition
En underklass till Schema deklarerar typade fält som kopplas till din modell. Alternativ som required, dump_only och data_key formar exakt vad som går in och ut.
Lär dig Python med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 30
- Lektioner
- 120
Vanliga frågor
Är lektionen ”Definiera ett schema för en modell” gratis?
Ja – hela texten till ”Definiera ett schema för en modell” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Flask Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Flask Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Definiera ett schema för en modell”?
Deklarera fält som mappar till din modell. Ni övar på Flask Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Flask Academy?
Du behöver inga förkunskaper. Utbildningen i Flask Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.
Hur lång tid tar lektionen ”Definiera ett schema för en modell”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Flask Academy-lektionen?
Ja. Varje Flask Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Varför handbyggd JSON faller samman
- Definiera ett schema för en modell
- Omvandla objekt till JSON
- Läs in och validera indatapayloads