Serialisatie met model_dump en aliases
Bepaal hoe Pydantic-modellen gegevens omzetten van en naar andere vormen met model_dump, field aliases, computed fields en serialisatieopties voor overzichtelijke API-payloads.
Serialisatie met model_dump en aliases is een gratis Bootcamp backendontwikkeling met FastAPI-les op CoddyKit. Dit is les 4 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Bootcamp backendontwikkeling met FastAPI. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Bootcamp backendontwikkeling met FastAPI bevat in totaal 4 lessen.
Serialisatie versus validatie
Pydantic heeft twee taken: validatie (onbetrouwbare invoer wordt een getypeerd model) en serialisatie (een model wordt een dict of JSON om te verzenden). Deze les richt zich op nauwkeurige controle van de uitvoer.
De basis van model_dump
In Pydantic v2 zet model_dump() een model om in een dict en model_dump_json() in een JSON-tekenreeks.
from pydantic import BaseModel
class User(BaseModel):
name: str
age: int
u = User(name='Ada', age=36)
print(u.model_dump())
print(u.model_dump_json())Velden opnemen en uitsluiten
Beperk de uitvoer met include of exclude om interne of gevoelige velden uit een payload te verbergen.
u.model_dump(exclude={'age'})
u.model_dump(include={'name'})Standaardwaarden en None verwijderen
Gebruik exclude_none=True of exclude_defaults=True om compactere payloads te maken waarin lege waarden ontbreken.
class Profile(BaseModel):
name: str
bio: str | None = None
Profile(name='Ada').model_dump(exclude_none=True)Veldaliassen
Externe API's gebruiken vaak namen zoals userName, terwijl Python de voorkeur geeft aan user_name. Een alias koppelt deze namen aan elkaar.
from pydantic import BaseModel, Field
class User(BaseModel):
user_name: str = Field(alias='userName')Serialiseren met een alias
Standaard gebruikt model_dump de Python-veldnamen. Geef by_alias=True door om in plaats daarvan de aliasnamen uit te voeren.
u = User(userName='ada')
print(u.model_dump())
print(u.model_dump(by_alias=True))populate_by_name
Stel model_config = ConfigDict(populate_by_name=True) in om bij het parseren van invoer zowel de veldnaam als de alias te accepteren. Zo houd je beide kanten flexibel.
from pydantic import ConfigDict
class User(BaseModel):
model_config = ConfigDict(populate_by_name=True)
user_name: str = Field(alias='userName')Berekende velden
Maak afgeleide waarden beschikbaar in de uitvoer met @computed_field. Ze verschijnen in model_dump, maar maken geen deel uit van de invoer.
from pydantic import computed_field
class Person(BaseModel):
first: str
last: str
@computed_field
@property
def full(self) -> str:
return self.first + ' ' + self.lastAangepaste veldserialiseerders
Gebruik @field_serializer om te bepalen hoe een specifiek veld wordt weergegeven, bijvoorbeeld om een datetime op te maken of een geheim af te schermen.
from pydantic import field_serializer
class Account(BaseModel):
card: str
@field_serializer('card')
def mask(self, v: str) -> str:
return '****' + v[-4:]Aliastoewijzing in gewone Python
De transformatie by_alias bestaat alleen uit het hernoemen van sleutels. Hier zie je het concept zonder Pydantic.
data = {'user_name': 'ada', 'user_age': 36}
alias = {'user_name': 'userName', 'user_age': 'userAge'}
out = {alias[k]: v for k, v in data.items()}
print(out)FastAPI-integratie van antwoorden
FastAPI serialiseert retourwaarden via je response_model. Stel response_model_by_alias en uitsluitingsopties op de route in om de JSON-vorm van je API-uitvoer te bepalen.
@app.get('/user', response_model=User, response_model_by_alias=True)
async def get_user():
return User(user_name='ada')Korte controle
Je model heeft user_name: str = Field(alias='userName'). Welke sleutel levert model_dump(by_alias=True) op?
Samenvatting
Je beheerst nu Pydantic-serialisatie:
model_dump/model_dump_jsonmet include, exclude en exclude_none.- Aliassen plus
by_aliasenpopulate_by_name. - Berekende velden en aangepaste veldserialiseerders.
- Integratie met antwoordmodellen van FastAPI.
Leer Bootcamp backendontwikkeling met FastAPI met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 21
- Lessen
- 84
Veelgestelde vragen
Is de les “Serialisatie met model_dump en aliases” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Bootcamp backendontwikkeling met FastAPI, waaronder “Serialisatie met model_dump en aliases”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Bootcamp backendontwikkeling met FastAPI bevat in totaal 4 lessen.
Wat leer ik in “Serialisatie met model_dump en aliases”?
Bepaal hoe Pydantic-modellen gegevens omzetten van en naar andere vormen met model_dump, field aliases, computed fields en serialisatieopties voor overzichtelijke API-payloads. Je oefent met Bootcamp backendontwikkeling met FastAPI door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Bootcamp backendontwikkeling met FastAPI te beginnen?
Ervaring vooraf is niet nodig. Bootcamp backendontwikkeling met FastAPI op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.
Hoe lang duurt de les “Serialisatie met model_dump en aliases”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Bootcamp backendontwikkeling met FastAPI?
Ja. Elke les over Bootcamp backendontwikkeling met FastAPI bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Pydantic-veldvalidatie en validators
- Aangepaste datatypen en instellingen
- Geneste modellen en recursieve structuren
- Serialisatie met model_dump en aliases