@ -6,57 +6,7 @@ De la même façon que vous pouvez déclarer plus de validations et de métadonn
Tout d'abord, importez `Path` de `fastapi` , et importez `Annotated` :
//// tab | Python 3.10+
```Python hl_lines="1 3"
{!> ../../docs_src/path_params_numeric_validations/tutorial001_an_py310.py!}
```
////
//// tab | Python 3.9+
```Python hl_lines="1 3"
{!> ../../docs_src/path_params_numeric_validations/tutorial001_an_py39.py!}
```
////
//// tab | Python 3.8+
```Python hl_lines="3-4"
{!> ../../docs_src/path_params_numeric_validations/tutorial001_an.py!}
```
////
//// tab | Python 3.10+ non-Annotated
/// tip
Préférez utiliser la version `Annotated` si possible.
///
```Python hl_lines="1"
{!> ../../docs_src/path_params_numeric_validations/tutorial001_py310.py!}
```
////
//// tab | Python 3.8+ non-Annotated
/// tip
Préférez utiliser la version `Annotated` si possible.
///
```Python hl_lines="3"
{!> ../../docs_src/path_params_numeric_validations/tutorial001.py!}
```
////
{* ../../docs_src/path_params_numeric_validations/tutorial001_an_py310.py hl[1,3] *}
/// info
@ -74,57 +24,7 @@ Vous pouvez déclarer les mêmes paramètres que pour `Query`.
Par exemple, pour déclarer une valeur de métadonnée `title` pour le paramètre de chemin `item_id` , vous pouvez écrire :
//// tab | Python 3.10+
```Python hl_lines="10"
{!> ../../docs_src/path_params_numeric_validations/tutorial001_an_py310.py!}
```
////
//// tab | Python 3.9+
```Python hl_lines="10"
{!> ../../docs_src/path_params_numeric_validations/tutorial001_an_py39.py!}
```
////
//// tab | Python 3.8+
```Python hl_lines="11"
{!> ../../docs_src/path_params_numeric_validations/tutorial001_an.py!}
```
////
//// tab | Python 3.10+ non-Annotated
/// tip
Préférez utiliser la version `Annotated` si possible.
///
```Python hl_lines="8"
{!> ../../docs_src/path_params_numeric_validations/tutorial001_py310.py!}
```
////
//// tab | Python 3.8+ non-Annotated
/// tip
Préférez utiliser la version `Annotated` si possible.
///
```Python hl_lines="10"
{!> ../../docs_src/path_params_numeric_validations/tutorial001.py!}
```
////
{* ../../docs_src/path_params_numeric_validations/tutorial001_an_py310.py hl[10] *}
/// note
@ -154,37 +54,11 @@ Cela n'a pas d'importance pour **FastAPI**. Il détectera les paramètres par le
Ainsi, vous pouvez déclarer votre fonction comme suit :
//// tab | Python 3.8 non-Annotated
/// tip
Préférez utiliser la version `Annotated` si possible.
///
```Python hl_lines="7"
{!> ../../docs_src/path_params_numeric_validations/tutorial002.py!}
```
////
{* ../../docs_src/path_params_numeric_validations/tutorial002.py hl[7] *}
Mais gardez à l'esprit que si vous utilisez `Annotated` , vous n'aurez pas ce problème, cela n'aura pas d'importance car vous n'utilisez pas les valeurs par défaut des paramètres de fonction pour `Query()` ou `Path()` .
//// tab | Python 3.9+
```Python hl_lines="10"
{!> ../../docs_src/path_params_numeric_validations/tutorial002_an_py39.py!}
```
////
//// tab | Python 3.8+
```Python hl_lines="9"
{!> ../../docs_src/path_params_numeric_validations/tutorial002_an.py!}
```
////
{* ../../docs_src/path_params_numeric_validations/tutorial002_an_py39.py hl[10] *}
## Ordonnez les paramètres comme vous le souhaitez (astuces)
@ -209,29 +83,13 @@ Passez `*`, comme premier paramètre de la fonction.
Python ne fera rien avec ce `*` , mais il saura que tous les paramètres suivants doivent être appelés comme arguments "mots-clés" (paires clé-valeur), également connus sous le nom de < abbr title = "De : K-ey W-ord Arg-uments" >< code > kwargs</ code ></ abbr > . Même s'ils n'ont pas de valeur par défaut.
```Python hl_lines="7"
{!../../docs_src/path_params_numeric_validations/tutorial003.py!}
```
{* ../../docs_src/path_params_numeric_validations/tutorial003.py hl[7] *}
# Avec `Annotated`
Gardez à l'esprit que si vous utilisez `Annotated` , comme vous n'utilisez pas les valeurs par défaut des paramètres de fonction, vous n'aurez pas ce problème, et vous n'aurez probablement pas besoin d'utiliser `*` .
//// tab | Python 3.9+
```Python hl_lines="10"
{!> ../../docs_src/path_params_numeric_validations/tutorial003_an_py39.py!}
```
////
//// tab | Python 3.8+
```Python hl_lines="9"
{!> ../../docs_src/path_params_numeric_validations/tutorial003_an.py!}
```
////
{* ../../docs_src/path_params_numeric_validations/tutorial003_an_py39.py hl[10] *}
## Validations numériques : supérieur ou égal
@ -239,35 +97,7 @@ Avec `Query` et `Path` (et d'autres que vous verrez plus tard) vous pouvez décl
Ici, avec `ge=1` , `item_id` devra être un nombre entier "`g`reater than or `e` qual" à `1` .
//// tab | Python 3.9+
```Python hl_lines="10"
{!> ../../docs_src/path_params_numeric_validations/tutorial004_an_py39.py!}
```
////
//// tab | Python 3.8+
```Python hl_lines="9"
{!> ../../docs_src/path_params_numeric_validations/tutorial004_an.py!}
```
////
//// tab | Python 3.8+ non-Annotated
/// tip
Prefer to use the `Annotated` version if possible.
///
```Python hl_lines="8"
{!> ../../docs_src/path_params_numeric_validations/tutorial004.py!}
```
////
{* ../../docs_src/path_params_numeric_validations/tutorial004_an_py39.py hl[10] *}
## Validations numériques : supérieur ou égal et inférieur ou égal
@ -276,35 +106,7 @@ La même chose s'applique pour :
* `gt` : `g` reater `t` han
* `le` : `l` ess than or `e` qual
//// tab | Python 3.9+
```Python hl_lines="10"
{!> ../../docs_src/path_params_numeric_validations/tutorial004_an_py39.py!}
```
////
//// tab | Python 3.8+
```Python hl_lines="9"
{!> ../../docs_src/path_params_numeric_validations/tutorial004_an.py!}
```
////
//// tab | Python 3.8+ non-Annotated
/// tip
Préférez utiliser la version `Annotated` si possible.
///
```Python hl_lines="8"
{!> ../../docs_src/path_params_numeric_validations/tutorial004.py!}
```
////
{* ../../docs_src/path_params_numeric_validations/tutorial004_an_py39.py hl[10] *}
## Validations numériques : supérieur et inférieur ou égal
@ -313,35 +115,7 @@ La même chose s'applique pour :
* `gt` : `g` reater `t` han
* `le` : `l` ess than or `e` qual
//// tab | Python 3.9+
```Python hl_lines="10"
{!> ../../docs_src/path_params_numeric_validations/tutorial005_an_py39.py!}
```
////
//// tab | Python 3.8+
```Python hl_lines="9"
{!> ../../docs_src/path_params_numeric_validations/tutorial005_an.py!}
```
////
//// tab | Python 3.8+ non-Annotated
/// tip
Préférez utiliser la version `Annotated` si possible.
///
```Python hl_lines="9"
{!> ../../docs_src/path_params_numeric_validations/tutorial005.py!}
```
////
{* ../../docs_src/path_params_numeric_validations/tutorial005_an_py39.py hl[10] *}
## Validations numériques : flottants, supérieur et inférieur
@ -353,35 +127,7 @@ Ainsi, `0.5` serait une valeur valide. Mais `0.0` ou `0` ne le serait pas.
Et la même chose pour < abbr title = "less than" > < code > lt< / code > < / abbr > .
//// tab | Python 3.9+
```Python hl_lines="13"
{!> ../../docs_src/path_params_numeric_validations/tutorial006_an_py39.py!}
```
////
//// tab | Python 3.8+
```Python hl_lines="12"
{!> ../../docs_src/path_params_numeric_validations/tutorial006_an.py!}
```
////
//// tab | Python 3.8+ non-Annotated
/// tip
Préférez utiliser la version `Annotated` si possible.
///
```Python hl_lines="11"
{!> ../../docs_src/path_params_numeric_validations/tutorial006.py!}
```
////
{* ../../docs_src/path_params_numeric_validations/tutorial006_an_py39.py hl[13] *}
## Pour résumer