Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 14 additions & 42 deletions docs/fr/docs/tutorial/query-params-str-validations.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,7 @@

Commençons avec cette application pour exemple :

```Python hl_lines="9"
{!../../docs_src/query_params_str_validations/tutorial001.py!}
```
{* ../../docs_src/query_params_str_validations/tutorial001.py hl[9] *}

Le paramètre de requête `q` a pour type `Union[str, None]` (ou `str | None` en Python 3.10), signifiant qu'il est de type `str` mais pourrait aussi être égal à `None`, et bien sûr, la valeur par défaut est `None`, donc **FastAPI** saura qu'il n'est pas requis.

Expand All @@ -26,17 +24,13 @@ Nous allons imposer que bien que `q` soit un paramètre optionnel, dès qu'il es

Pour cela, importez d'abord `Query` depuis `fastapi` :

```Python hl_lines="3"
{!../../docs_src/query_params_str_validations/tutorial002.py!}
```
{* ../../docs_src/query_params_str_validations/tutorial002.py hl[3] *}

## Utiliser `Query` comme valeur par défaut

Construisez ensuite la valeur par défaut de votre paramètre avec `Query`, en choisissant 50 comme `max_length` :

```Python hl_lines="9"
{!../../docs_src/query_params_str_validations/tutorial002.py!}
```
{* ../../docs_src/query_params_str_validations/tutorial002.py hl[9] *}

Comme nous devons remplacer la valeur par défaut `None` dans la fonction par `Query()`, nous pouvons maintenant définir la valeur par défaut avec le paramètre `Query(default=None)`, il sert le même objectif qui est de définir cette valeur par défaut.

Expand Down Expand Up @@ -86,17 +80,13 @@ Cela va valider les données, montrer une erreur claire si ces dernières ne son

Vous pouvez aussi rajouter un second paramètre `min_length` :

```Python hl_lines="9"
{!../../docs_src/query_params_str_validations/tutorial003.py!}
```
{* ../../docs_src/query_params_str_validations/tutorial003.py hl[9] *}

## Ajouter des validations par expressions régulières

On peut définir une <abbr title="Une expression régulière, regex ou regexp est une suite de caractères qui définit un pattern de correspondance pour les chaînes de caractères.">expression régulière</abbr> à laquelle le paramètre doit correspondre :

```Python hl_lines="10"
{!../../docs_src/query_params_str_validations/tutorial004.py!}
```
{* ../../docs_src/query_params_str_validations/tutorial004.py hl[10] *}

Cette expression régulière vérifie que la valeur passée comme paramètre :

Expand All @@ -114,9 +104,7 @@ De la même façon que vous pouvez passer `None` comme premier argument pour l'u

Disons que vous déclarez le paramètre `q` comme ayant une longueur minimale de `3`, et une valeur par défaut étant `"fixedquery"` :

```Python hl_lines="7"
{!../../docs_src/query_params_str_validations/tutorial005.py!}
```
{* ../../docs_src/query_params_str_validations/tutorial005.py hl[7] *}

/// note | "Rappel"

Expand Down Expand Up @@ -146,9 +134,7 @@ q: Union[str, None] = Query(default=None, min_length=3)

Donc pour déclarer une valeur comme requise tout en utilisant `Query`, il faut utiliser `...` comme premier argument :

```Python hl_lines="7"
{!../../docs_src/query_params_str_validations/tutorial006.py!}
```
{* ../../docs_src/query_params_str_validations/tutorial006.py hl[7] *}

/// info

Expand All @@ -164,9 +150,7 @@ Quand on définit un paramètre de requête explicitement avec `Query` on peut a

Par exemple, pour déclarer un paramètre de requête `q` qui peut apparaître plusieurs fois dans une URL, on écrit :

```Python hl_lines="9"
{!../../docs_src/query_params_str_validations/tutorial011.py!}
```
{* ../../docs_src/query_params_str_validations/tutorial011.py hl[9] *}

Ce qui fait qu'avec une URL comme :

Expand Down Expand Up @@ -201,9 +185,7 @@ La documentation sera donc mise Ă  jour automatiquement pour autoriser plusieurs

Et l'on peut aussi définir une liste de valeurs par défaut si aucune n'est fournie :

```Python hl_lines="9"
{!../../docs_src/query_params_str_validations/tutorial012.py!}
```
{* ../../docs_src/query_params_str_validations/tutorial012.py hl[9] *}

Si vous allez Ă  :

Expand All @@ -228,9 +210,7 @@ et la réponse sera :

Il est aussi possible d'utiliser directement `list` plutĂ´t que `List[str]` :

```Python hl_lines="7"
{!../../docs_src/query_params_str_validations/tutorial013.py!}
```
{* ../../docs_src/query_params_str_validations/tutorial013.py hl[7] *}

/// note

Expand All @@ -256,15 +236,11 @@ Il se peut donc que certains d'entre eux n'utilisent pas toutes les métadonnée

Vous pouvez ajouter un `title` :

```Python hl_lines="10"
{!../../docs_src/query_params_str_validations/tutorial007.py!}
```
{* ../../docs_src/query_params_str_validations/tutorial007.py hl[10] *}

Et une `description` :

```Python hl_lines="13"
{!../../docs_src/query_params_str_validations/tutorial008.py!}
```
{* ../../docs_src/query_params_str_validations/tutorial008.py hl[13] *}

## Alias de paramètres

Expand All @@ -284,9 +260,7 @@ Mais vous avez vraiment envie que ce soit exactement `item-query`...

Pour cela vous pouvez déclarer un `alias`, et cet alias est ce qui sera utilisé pour trouver la valeur du paramètre :

```Python hl_lines="9"
{!../../docs_src/query_params_str_validations/tutorial009.py!}
```
{* ../../docs_src/query_params_str_validations/tutorial009.py hl[9] *}

## Déprécier des paramètres

Expand All @@ -296,9 +270,7 @@ Il faut qu'il continue Ă  exister pendant un certain temps car vos clients l'uti

On utilise alors l'argument `deprecated=True` de `Query` :

```Python hl_lines="18"
{!../../docs_src/query_params_str_validations/tutorial010.py!}
```
{* ../../docs_src/query_params_str_validations/tutorial010.py hl[18] *}

La documentation le présentera comme il suit :

Expand Down