# Modèles de formulaire { #form-models } Vous pouvez utiliser des **modèles Pydantic** pour déclarer des **champs de formulaire** dans FastAPI. /// info Pour utiliser les formulaires, installez d'abord [`python-multipart`](https://github.com/Kludex/python-multipart). Assurez-vous de créer un [environnement virtuel](../virtual-environments.md), de l'activer, puis d'installer le paquet, par exemple : ```console $ pip install python-multipart ``` /// /// note | Remarque Ceci est pris en charge depuis la version `0.113.0` de FastAPI. 🤓 /// ## Modèles Pydantic pour les formulaires { #pydantic-models-for-forms } Vous avez simplement besoin de déclarer un **modèle Pydantic** avec les champs que vous souhaitez recevoir comme **champs de formulaire**, puis de déclarer le paramètre comme `Form` : {* ../../docs_src/request_form_models/tutorial001_an_py310.py hl[9:11,15] *} **FastAPI** va **extraire** les données pour **chaque champ** à partir des **données de formulaire** de la requête et vous fournir le modèle Pydantic que vous avez défini. ## Consulter les documents { #check-the-docs } Vous pouvez le vérifier dans l'interface des documents à `/docs` :
## Interdire les champs de formulaire supplémentaires { #forbid-extra-form-fields } Dans certains cas d'utilisation particuliers (probablement peu courants), vous pourriez vouloir **restreindre** les champs de formulaire à ceux déclarés dans le modèle Pydantic, et **interdire** tout champ **supplémentaire**. /// note | Remarque Ceci est pris en charge depuis la version `0.114.0` de FastAPI. 🤓 /// Vous pouvez utiliser la configuration du modèle Pydantic pour `forbid` tout champ `extra` : {* ../../docs_src/request_form_models/tutorial002_an_py310.py hl[12] *} Si un client tente d'envoyer des données supplémentaires, il recevra une **réponse d'erreur**. Par exemple, si le client essaie d'envoyer les champs de formulaire : * `username`: `Rick` * `password`: `Portal Gun` * `extra`: `Mr. Poopybutthole` Il recevra une réponse d'erreur lui indiquant que le champ `extra` n'est pas autorisé : ```json { "detail": [ { "type": "extra_forbidden", "loc": ["body", "extra"], "msg": "Extra inputs are not permitted", "input": "Mr. Poopybutthole" } ] } ``` ## Résumer { #summary } Vous pouvez utiliser des modèles Pydantic pour déclarer des champs de formulaire dans FastAPI. 😎