Modèles Pydantic pour le corps des requêtes
Utilisez Pydantic pour définir les schémas de données des requêtes POST, PUT et DELETE entrantes, afin de garantir une validation robuste des données.
Modèles Pydantic pour le corps des requêtes est une leçon FastAPI Backend Development Bootcamp gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage FastAPI Backend Development Bootcamp, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours FastAPI Backend Development Bootcamp comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
API Request Bodies
When you send data to an API, like creating a new user or an item, that data is often sent in the request body.
For example, a request to create a new product might include its name, price, and description. Ensuring this incoming data is correct and valid is crucial for your application's stability and security.
Why Validate Request Data?
Validating incoming data is essential for several reasons:
- Data Integrity: Ensures your database receives only correctly formatted and meaningful information.
- Security: Prevents malicious or malformed data from causing errors or vulnerabilities.
- User Experience: Provides clear error messages to users when their input is incorrect.
- Code Reliability: Reduces bugs by guaranteeing that your application logic operates on expected data types.
Meet Pydantic
Pydantic is a Python library that provides data validation and settings management using Python type hints. It's incredibly fast and integrates seamlessly with FastAPI.
FastAPI uses Pydantic behind the scenes to:
- Parse request bodies into Python objects.
- Validate data types and constraints.
- Generate clear error messages if validation fails.
Creating Your First Pydantic Model
To define a data structure for your request body, you create a class that inherits from Pydantic's BaseModel. You then declare fields using standard Python type hints.
This model acts as a schema, specifying what data your API expects.
Pydantic Model in Action
Let's define a simple Item model. Notice how we specify name as a string and price as a float. We'll also show how it handles validation!
from pydantic import BaseModel, ValidationError
class Item(BaseModel):
name: str
price: float
description: str | None = None # Optional field
def main():
print("--- Valid Item ---")
try:
item1 = Item(name="Laptop", price=1200.50)
print(item1.model_dump_json(indent=2))
except ValidationError as e:
print(e.json())
print("\n--- Invalid Item (missing price) ---")
try:
item2 = Item(name="Keyboard")
print(item2.model_dump_json(indent=2))
except ValidationError as e:
print(e.json())
if __name__ == "__main__":
main()FastAPI and Pydantic Synergy
FastAPI automatically recognizes Pydantic BaseModel objects in your endpoint function parameters. When a request comes in, FastAPI:
- Reads the JSON request body.
- Uses your Pydantic model to parse and validate the data.
- Injects the validated data as an instance of your model into your function.
It's magic!
Building a POST Endpoint
Here's how you define a POST endpoint in FastAPI that expects an Item in its request body. FastAPI handles all the parsing and validation for you!
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class Item(BaseModel):
name: str
price: float
description: str | None = None
tax: float | None = None
@app.post("/items/")
async def create_item(item: Item):
# The 'item' variable is now an Item object,
# already validated by Pydantic!
return {"message": "Item received successfully!", "item": item.model_dump()}
# To run this application:
# 1. Save the code as main.py
# 2. Run in terminal: uvicorn main:app --reload
# 3. Send a POST request to http://127.0.0.1:8000/items/
# with a JSON body like: {"name": "Book", "price": 29.99}Automatic Validation & Errors
If a client sends data that doesn't match your Pydantic model (e.g., missing a required field or wrong data type), FastAPI will automatically return a detailed 422 Unprocessable Entity error response.
This error message is automatically generated and very helpful for debugging both client-side and API issues.
Optional Fields & Default Values
Not all fields in your request body need to be mandatory. You can make fields optional or provide default values:
- Use
field: str | None = Nonefor optional fields that default toNone. - Use
field: int = 0to set a specific default value if the field is not provided.
This flexibility allows you to design robust and user-friendly API schemas.
Pydantic Models Check
Which of the following statements about Pydantic models in FastAPI are TRUE?
Recap: Pydantic Power
You've learned how Pydantic models are fundamental for handling request bodies in FastAPI. They provide robust data validation, automatic parsing, and clear error messages, making your API development much smoother and more reliable.
Next, we'll explore how to define explicit response models and handle HTTP status codes for various API operations!
Questions Fréquemment Posées
La leçon « Modèles Pydantic pour le corps des requêtes » est-elle gratuite ?
Oui — le texte complet de « Modèles Pydantic pour le corps des requêtes » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours FastAPI Backend Development Bootcamp, passe à CoddyKit PRO. Le cours FastAPI Backend Development Bootcamp comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Modèles Pydantic pour le corps des requêtes » ?
Utilisez Pydantic pour définir les schémas de données des requêtes POST, PUT et DELETE entrantes, afin de garantir une validation robuste des données. Tu pratiques FastAPI Backend Development Bootcamp avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer FastAPI Backend Development Bootcamp ?
Aucune expérience préalable n'est requise. FastAPI Backend Development Bootcamp sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Modèles Pydantic pour le corps des requêtes » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon FastAPI Backend Development Bootcamp ?
Oui. Chaque leçon FastAPI Backend Development Bootcamp inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Modèles Pydantic pour le corps des requêtes
- Modèles de réponse et codes d’état
- Données de formulaire et téléversement de fichiers
- En-têtes, cookies et réponses personnalisées