# ๐ข ๐ข & ๐ป ๐ฌ
**FastAPI** โ ๐ ๐ฃ ๐ โน & ๐ฌ ๐ ๐ข.
โก๏ธ โ ๐ ๐ธ ๐ผ:
{* ../../docs_src/query_params_str_validations/tutorial001.py hl[9] *}
๐ข ๐ข `q` ๐ `Union[str, None]` (โ๏ธ `str | None` ๐ 3๏ธโฃ.1๏ธโฃ0๏ธโฃ), ๐ โ ๐ โซ๏ธ ๐ `str` โ๏ธ ๐ช `None`, & ๐, ๐ข ๐ฒ `None`, FastAPI ๐ ๐ญ โซ๏ธ ๐ซ โ.
/// note
FastAPI ๐ ๐ญ ๐ ๐ฒ `q` ๐ซ โ โฉ๏ธ ๐ข ๐ฒ `= None`.
`Union` `Union[str, None]` ๐ โ ๐ ๐จโ๐จ ๐ค ๐ ๐ ๐โ๐ฆบ & ๐ โ.
///
## ๐ ๐ฌ
๐ฅ ๐ ๐ ๏ธ ๐ โ๏ธ `q` ๐ฆ, ๐โ โซ๏ธ ๐, **๐ฎ ๐ ๐ซ ๐ 5๏ธโฃ0๏ธโฃ ๐ฆน**.
### ๐ `Query`
๐ ๐, ๐ฅ ๐ `Query` โช๏ธโก๏ธ `fastapi`:
{* ../../docs_src/query_params_str_validations/tutorial002.py hl[3] *}
## โ๏ธ `Query` ๐ข ๐ฒ
& ๐ โ๏ธ โซ๏ธ ๐ข ๐ฒ ๐ ๐ข, โ ๐ข `max_length` 5๏ธโฃ0๏ธโฃ:
{* ../../docs_src/query_params_str_validations/tutorial002.py hl[9] *}
๐ฅ โ๏ธ โ ๐ข ๐ฒ `None` ๐ข โฎ๏ธ `Query()`, ๐ฅ ๐ช ๐ โ ๐ข ๐ฒ โฎ๏ธ ๐ข `Query(default=None)`, โซ๏ธ ๐ฆ ๐ ๐ฏ โ ๐ ๐ข ๐ฒ.
:
```Python
q: Union[str, None] = Query(default=None)
```
...โ ๐ข ๐ฆ, ๐:
```Python
q: Union[str, None] = None
```
& ๐ 3๏ธโฃ.1๏ธโฃ0๏ธโฃ & ๐:
```Python
q: str | None = Query(default=None)
```
...โ ๐ข ๐ฆ, ๐:
```Python
q: str | None = None
```
โ๏ธ โซ๏ธ ๐ฃ โซ๏ธ ๐ฏ ๐โโ ๐ข ๐ข.
/// info
โ๏ธ ๐คฏ ๐ ๐
โ ๐ โ ๐ข ๐ฆ ๐:
```Python
= None
```
โ๏ธ:
```Python
= Query(default=None)
```
โซ๏ธ ๐ โ๏ธ ๐ `None` ๐ข ๐ฒ, & ๐ ๐ โ ๐ข **๐ซ โ**.
`Union[str, None]` ๐ โ ๐ ๐จโ๐จ ๐ ๐ป ๐โ๐ฆบ, โ๏ธ โซ๏ธ ๐ซ โซ๏ธโ ๐ฌ FastAPI ๐ ๐ ๐ข ๐ซ โ.
///
โคด๏ธ, ๐ฅ ๐ช ๐ถโโ๏ธ ๐
๐ข `Query`. ๐ ๐ผ, `max_length` ๐ข ๐ โ ๐ป:
```Python
q: Union[str, None] = Query(default=None, max_length=50)
```
๐ ๐ โ ๐, ๐ฆ ๐ โ ๐โ ๐ ๐ซ โ, & ๐ ๐ข ๐ ๐ *โก ๐ ๏ธ*.
## ๐ฎ ๐
๐ฌ
๐ ๐ช ๐ฎ ๐ข `min_length`:
{* ../../docs_src/query_params_str_validations/tutorial003.py hl[10] *}
## ๐ฎ ๐ฅ ๐งฌ
๐ ๐ช ๐ฌ ๐ฅ ๐งฌ ๐ ๐ข ๐ ๐:
{* ../../docs_src/query_params_str_validations/tutorial004.py hl[11] *}
๐ ๐ฏ ๐ฅ ๐งฌ โ
๐ ๐จ ๐ข ๐ฒ:
* `^`: โถ๏ธ โฎ๏ธ ๐ ๐ฆน, ๐ซ โ๏ธ ๐ฆน โญ.
* `fixedquery`: โ๏ธ โ ๐ฒ `fixedquery`.
* `$`: ๐ ๐ค, ๐ซ โ๏ธ ๐ ๐ ๐ฆน โฎ๏ธ `fixedquery`.
๐ฅ ๐ ๐ญ ๐ธ โฎ๏ธ ๐ ๐ **"๐ฅ ๐งฌ"** ๐ญ, ๐ซ ๐. ๐ซ ๐๏ธ โ ๐ ๐ซ๐ซ. ๐ ๐ช ๐ ๐ฉ ๐ต ๐โโ ๐ฅ ๐งฌ.
โ๏ธ ๐โ ๐ ๐ช ๐ซ & ๐ถ & ๐ก ๐ซ, ๐ญ ๐ ๐ ๐ช โช โ๏ธ ๐ซ ๐ **FastAPI**.
## ๐ข ๐ฒ
๐ ๐ ๐ ๐ ๐ช ๐ถโโ๏ธ `None` ๐ฒ `default` ๐ข, ๐ ๐ช ๐ถโโ๏ธ ๐ ๐ฒ.
โก๏ธ ๐ฌ ๐ ๐ ๐ ๐ฃ `q` ๐ข ๐ข โ๏ธ `min_length` `3`, & โ๏ธ ๐ข ๐ฒ `"fixedquery"`:
{* ../../docs_src/query_params_str_validations/tutorial005.py hl[7] *}
/// note
โ๏ธ ๐ข ๐ฒ โ ๐ข ๐ฆ.
///
## โ โซ๏ธ โ
๐โ ๐ฅ ๐ซ ๐ช ๐ฃ ๐
๐ฌ โ๏ธ ๐, ๐ฅ ๐ช โ `q` ๐ข ๐ข โ ๐ซ ๐ฃ ๐ข ๐ฒ, ๐:
```Python
q: str
```
โฉ๏ธ:
```Python
q: Union[str, None] = None
```
โ๏ธ ๐ฅ ๐ ๐ฃ โซ๏ธ โฎ๏ธ `Query`, ๐ผ ๐:
```Python
q: Union[str, None] = Query(default=None, min_length=3)
```
, ๐โ ๐ ๐ช ๐ฃ ๐ฒ โ โช โ๏ธ `Query`, ๐ ๐ช ๐ฏ ๐ซ ๐ฃ ๐ข ๐ฒ:
{* ../../docs_src/query_params_str_validations/tutorial006.py hl[7] *}
### โ โฎ๏ธ `None`
๐ ๐ช ๐ฃ ๐ ๐ข ๐ช ๐ซ `None`, โ๏ธ ๐ โซ๏ธ โ. ๐ ๐ โก ๐ฉโ๐ป ๐จ ๐ฒ, ๐ฅ ๐ฒ `None`.
๐, ๐ ๐ช ๐ฃ ๐ `None` โ ๐ โ๏ธ โ๏ธ `default=...`:
{* ../../docs_src/query_params_str_validations/tutorial006c.py hl[9] *}
/// tip
Pydantic, โ โซ๏ธโ ๐๏ธ ๐ ๐ฝ ๐ฌ & ๐ ๏ธ FastAPI, โ๏ธ ๐ ๐ญ ๐โ ๐ โ๏ธ `Optional` โ๏ธ `Union[Something, None]` ๐ต ๐ข ๐ฒ, ๐ ๐ช โ ๐
๐ โซ๏ธ Pydantic ๐ฉบ ๐ โ ๐ฆ ๐.
///
## ๐ข ๐ข ๐ / ๐ ๐ฒ
๐โ ๐ ๐ฌ ๐ข ๐ข ๐ฏ โฎ๏ธ `Query` ๐ ๐ช ๐ฃ โซ๏ธ ๐จ ๐ ๐ฒ, โ๏ธ ๐โโ ๐ ๐, ๐จ ๐ ๐ฒ.
๐ผ, ๐ฃ ๐ข ๐ข `q` ๐ ๐ช ๐ ๐ ๐ฐ ๐, ๐ ๐ช โ:
{* ../../docs_src/query_params_str_validations/tutorial011.py hl[9] *}
โคด๏ธ, โฎ๏ธ ๐ ๐:
```
http://localhost:8000/items/?q=foo&q=bar
```
๐ ๐ ๐จ ๐ `q` *๐ข ๐ข'* ๐ฒ (`foo` & `bar`) ๐ `list` ๐ ๐ *โก ๐ ๏ธ ๐ข*, *๐ข ๐ข* `q`.
, ๐จ ๐ ๐ ๐:
```JSON
{
"q": [
"foo",
"bar"
]
}
```
/// tip
๐ฃ ๐ข ๐ข โฎ๏ธ ๐ `list`, ๐ ๐ผ ๐, ๐ ๐ช ๐ฏ โ๏ธ `Query`, โช โซ๏ธ ๐ ๐ฌ ๐จ ๐ช.
///
๐ ๐ ๏ธ ๐ฉบ ๐ โน โก๏ธ, โ ๐ ๐ฒ:
### ๐ข ๐ข ๐ / ๐ ๐ฒ โฎ๏ธ ๐ข
& ๐ ๐ช ๐ฌ ๐ข `list` ๐ฒ ๐ฅ ๐ ๐:
{* ../../docs_src/query_params_str_validations/tutorial012.py hl[9] *}
๐ฅ ๐ ๐ถ:
```
http://localhost:8000/items/
```
๐ข `q` ๐: `["foo", "bar"]` & ๐ ๐จ ๐:
```JSON
{
"q": [
"foo",
"bar"
]
}
```
#### โ๏ธ `list`
๐ ๐ช โ๏ธ `list` ๐ โฉ๏ธ `List[str]` (โ๏ธ `list[str]` ๐ 3๏ธโฃ.9๏ธโฃ โ):
{* ../../docs_src/query_params_str_validations/tutorial013.py hl[7] *}
/// note
โ๏ธ ๐คฏ ๐ ๐ ๐ผ, FastAPI ๐ ๐ซ โ
๐ ๐.
๐ผ, `List[int]` ๐ โ
(& ๐) ๐ ๐ ๐ ๐ข. โ๏ธ `list` ๐ ๐ซ๐.
///
## ๐ฃ ๐
๐
๐ ๐ช ๐ฎ ๐
โน ๐ ๐ข.
๐ โน ๐ ๐ ๐ ๐ & โ๏ธ ๐งพ ๐ฉโ๐ป ๐ข & ๐ข ๐งฐ.
/// note
โ๏ธ ๐คฏ ๐ ๐ ๐งฐ 5๏ธโฃ๐ โ๏ธ ๐ ๐ ๐ ๐โ๐ฆบ.
๐ซ ๐ช ๐ซ ๐ฆ ๐ โ โน ๐ฃ, ๐ ๐
๐ผ, โ โ โช ๐ ๐ ๏ธ.
///
๐ ๐ช ๐ฎ `title`:
{* ../../docs_src/query_params_str_validations/tutorial007.py hl[10] *}
& `description`:
{* ../../docs_src/query_params_str_validations/tutorial008.py hl[13] *}
## ๐ ๐ข
๐ ๐ ๐ ๐ ๐ข `item-query`.
๐:
```
http://127.0.0.1:8000/items/?item-query=foobaritems
```
โ๏ธ `item-query` ๐ซ โ ๐ ๐ข ๐.
๐ ๐ `item_query`.
โ๏ธ ๐ ๐ช โซ๏ธ โซ๏ธโ `item-query`...
โคด๏ธ ๐ ๐ช ๐ฃ `alias`, & ๐ ๐ โซ๏ธโ ๐ โ๏ธ ๐ ๐ข ๐ฒ:
{* ../../docs_src/query_params_str_validations/tutorial009.py hl[9] *}
## ๐ ๐ข
๐ โก๏ธ ๐ฌ ๐ ๐ซ ๐ ๐ ๐ข ๐ซ๐.
๐ โ๏ธ ๐ โซ๏ธ ๐ค โช โฉ๏ธ ๐ค ๐ฉโ๐ป โ๏ธ โซ๏ธ, โ๏ธ ๐ ๐ ๐ฉบ ๐ฏ ๐ฆ โซ๏ธ ๐ข.
โคด๏ธ ๐ถโโ๏ธ ๐ข `deprecated=True` `Query`:
{* ../../docs_src/query_params_str_validations/tutorial010.py hl[18] *}
๐ฉบ ๐ ๐ฆ โซ๏ธ ๐ ๐:
## ๐ซ โช๏ธโก๏ธ ๐
๐ซ ๐ข ๐ข โช๏ธโก๏ธ ๐ ๐ ๐ (& โก๏ธ, โช๏ธโก๏ธ ๐ง ๐งพ โ๏ธ), โ ๐ข `include_in_schema` `Query` `False`:
{* ../../docs_src/query_params_str_validations/tutorial014.py hl[10] *}
## ๐
๐ ๐ช ๐ฃ ๐ ๐ฌ & ๐ ๐ ๐ข.
๐ ๐ฌ & ๐:
* `alias`
* `title`
* `description`
* `deprecated`
๐ฌ ๐ฏ ๐ป:
* `min_length`
* `max_length`
* `regex`
๐ซ ๐ผ ๐ ๐ โ ๐ฃ ๐ฌ `str` ๐ฒ.
๐ โญ ๐ ๐ โ ๐ฃ ๐ฌ ๐ ๐, ๐ ๐ข.