committed by
GitHub
2 changed files with 123 additions and 0 deletions
@ -0,0 +1,122 @@ |
|||
# ๊ฒฝ๋ก ๋งค๊ฐ๋ณ์์ ์ซ์ ๊ฒ์ฆ |
|||
|
|||
`Query`๋ฅผ ์ฌ์ฉํ์ฌ ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์์ ๋ ๋ง์ ๊ฒ์ฆ๊ณผ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ์ธํ๋ ๋ฐฉ๋ฒ๊ณผ ๋์ผํ๊ฒ `Path`๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒฝ๋ก ๋งค๊ฐ๋ณ์์ ๊ฒ์ฆ๊ณผ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ํ์
์ผ๋ก ์ ์ธํ ์ ์์ต๋๋ค. |
|||
|
|||
## ๊ฒฝ๋ก ์ํฌํธ |
|||
|
|||
๋จผ์ `fastapi`์์ `Path`๋ฅผ ์ํฌํธํฉ๋๋ค: |
|||
|
|||
```Python hl_lines="3" |
|||
{!../../../docs_src/path_params_numeric_validations/tutorial001.py!} |
|||
``` |
|||
|
|||
## ๋ฉํ๋ฐ์ดํฐ ์ ์ธ |
|||
|
|||
`Query`์ ๋์ผํ ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ธํ ์ ์์ต๋๋ค. |
|||
|
|||
์๋ฅผ ๋ค์ด, `title` ๋ฉํ๋ฐ์ดํฐ ๊ฐ์ ๊ฒฝ๋ก ๋งค๊ฐ๋ณ์ `item_id`์ ์ ์ธํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์
๋ ฅํ ์ ์์ต๋๋ค: |
|||
|
|||
```Python hl_lines="10" |
|||
{!../../../docs_src/path_params_numeric_validations/tutorial001.py!} |
|||
``` |
|||
|
|||
!!! note "์ฐธ๊ณ " |
|||
๊ฒฝ๋ก ๋งค๊ฐ๋ณ์๋ ๊ฒฝ๋ก์ ์ผ๋ถ์ฌ์ผ ํ๋ฏ๋ก ์ธ์ ๋ ํ์์ ์
๋๋ค. |
|||
|
|||
์ฆ, `...`๋ก ์ ์ธํด์ ํ์์์ ๋ํ๋ด๋๊ฒ ์ข์ต๋๋ค. |
|||
|
|||
๊ทธ๋ผ์๋ `None`์ผ๋ก ์ ์ธํ๊ฑฐ๋ ๊ธฐ๋ณธ๊ฐ์ ์ง์ ํ ์ง๋ผ๋ ์๋ฌด ์ํฅ์ ๋ผ์น์ง ์์ผ๋ฉฐ ์ธ์ ๋ ํ์์
๋๋ค. |
|||
|
|||
## ํ์ํ ๊ฒฝ์ฐ ๋งค๊ฐ๋ณ์ ์ ๋ ฌํ๊ธฐ |
|||
|
|||
`str` ํ์ธ ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์ `q`๋ฅผ ํ์๋ก ์ ์ธํ๊ณ ์ถ๋ค๊ณ ํด๋ด
์๋ค. |
|||
|
|||
ํด๋น ๋งค๊ฐ๋ณ์์ ๋ํด ์๋ฌด๋ฐ ์ ์ธ์ ํ ํ์๊ฐ ์์ผ๋ฏ๋ก `Query`๋ฅผ ์ ๋ง๋ก ์จ์ผํ ํ์๋ ์์ต๋๋ค. |
|||
|
|||
ํ์ง๋ง `item_id` ๊ฒฝ๋ก ๋งค๊ฐ๋ณ์๋ ์ฌ์ ํ `Path`๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. |
|||
|
|||
ํ์ด์ฌ์ "๊ธฐ๋ณธ๊ฐ"์ด ์๋ ๊ฐ ์์ "๊ธฐ๋ณธ๊ฐ"์ด ์๋ ๊ฐ์ ์
๋ ฅํ๋ฉด ๋ถํํฉ๋๋ค. |
|||
|
|||
๊ทธ๋ฌ๋ ๋งค๊ฐ๋ณ์๋ค์ ์ฌ์ ๋ ฌํจ์ผ๋ก์จ ๊ธฐ๋ณธ๊ฐ(์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์ `q`)์ด ์๋ ๊ฐ์ ์ฒ์ ๋ถ๋ถ์ ์์น ํ ์ ์์ต๋๋ค. |
|||
|
|||
**FastAPI**์์๋ ์ค์ํ์ง ์์ต๋๋ค. ์ด๋ฆ, ํ์
๊ทธ๋ฆฌ๊ณ ์ ์ธ๊ตฌ(`Query`, `Path` ๋ฑ)๋ก ๋งค๊ฐ๋ณ์๋ฅผ ๊ฐ์งํ๋ฉฐ ์์๋ ์ ๊ฒฝ ์ฐ์ง ์์ต๋๋ค. |
|||
|
|||
๋ฐ๋ผ์ ํจ์๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ ์ธ ํ ์ ์์ต๋๋ค: |
|||
|
|||
```Python hl_lines="8" |
|||
{!../../../docs_src/path_params_numeric_validations/tutorial002.py!} |
|||
``` |
|||
|
|||
## ํ์ํ ๊ฒฝ์ฐ ๋งค๊ฐ๋ณ์ ์ ๋ ฌํ๊ธฐ, ํธ๋ฆญ |
|||
|
|||
`Query`๋ ์๋ฌด๋ฐ ๊ธฐ๋ณธ๊ฐ์ผ๋ก๋ `q` ๊ฒฝ๋ก ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ธํ๊ณ ์ถ์ง ์์ง๋ง `Path`๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒฝ๋ก ๋งค๊ฐ๋ณ์๋ฅผ `item_id` ๋ค๋ฅธ ์์๋ก ์ ์ธํ๊ณ ์ถ๋ค๋ฉด, ํ์ด์ฌ์ ์ด๋ฅผ ์ํ ์๊ณ ํน๋ณํ ๋ฌธ๋ฒ์ด ์์ต๋๋ค. |
|||
|
|||
`*`๋ฅผ ํจ์์ ์ฒซ ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌํ์ธ์. |
|||
|
|||
ํ์ด์ฌ์ `*`์ผ๋ก ์๋ฌด๋ฐ ํ๋๋ ํ์ง ์์ง๋ง, ๋ฐ๋ฅด๋ ๋งค๊ฐ๋ณ์๋ค์ <abbr title="์ ๋: K-ey W-ord Arg-uments"><code>kwargs</code></abbr>๋ก๋ ์๋ ค์ง ํค์๋ ์ธ์(ํค-๊ฐ ์)์ฌ์ผ ํจ์ ์ธ์งํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ ๊ฐ์ง๊ณ ์์ง ์๋๋ผ๋ ๊ทธ๋ ์ต๋๋ค. |
|||
|
|||
```Python hl_lines="8" |
|||
{!../../../docs_src/path_params_numeric_validations/tutorial003.py!} |
|||
``` |
|||
|
|||
## ์ซ์ ๊ฒ์ฆ: ํฌ๊ฑฐ๋ ๊ฐ์ |
|||
|
|||
`Query`์ `Path`(๋์ค์ ๋ณผ ๋ค๋ฅธ ๊ฒ๋ค๋)๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด ๋ฟ๋ง ์๋๋ผ ์ซ์์ ์ ์ฝ์ ์ ์ธํ ์ ์์ต๋๋ค. |
|||
|
|||
์ฌ๊ธฐ์ `ge=1`์ธ ๊ฒฝ์ฐ, `item_id`๋ `1`๋ณด๋ค "ํฌ๊ฑฐ๋(`g`reater) ๊ฐ์(`e`qual)" ์ ์ํ ์ซ์์ฌ์ผ ํฉ๋๋ค. |
|||
|
|||
```Python hl_lines="8" |
|||
{!../../../docs_src/path_params_numeric_validations/tutorial004.py!} |
|||
``` |
|||
|
|||
## ์ซ์ ๊ฒ์ฆ: ํฌ๊ฑฐ๋ ๊ฐ์ ๋ฐ ์๊ฑฐ๋ ๊ฐ์ |
|||
|
|||
๋์ผํ๊ฒ ์ ์ฉ๋ฉ๋๋ค: |
|||
|
|||
* `gt`: ํฌ๊ฑฐ๋(`g`reater `t`han) |
|||
* `le`: ์๊ฑฐ๋ ๊ฐ์(`l`ess than or `e`qual) |
|||
|
|||
```Python hl_lines="9" |
|||
{!../../../docs_src/path_params_numeric_validations/tutorial005.py!} |
|||
``` |
|||
|
|||
## ์ซ์ ๊ฒ์ฆ: ๋ถ๋์์, ํฌ๊ฑฐ๋ ๋ฐ ์๊ฑฐ๋ |
|||
|
|||
์ซ์ ๊ฒ์ฆ์ `float` ๊ฐ์๋ ๋์ํฉ๋๋ค. |
|||
|
|||
์ฌ๊ธฐ์์ <abbr title="greater than or equal"><code>ge</code></abbr>๋ฟ๋ง ์๋๋ผ <abbr title="greater than"><code>gt</code></abbr>๋ฅผ ์ ์ธ ํ ์์๋ ๊ฒ์ด ์ค์ํด์ง๋๋ค. ์๋ฅผ ๋ค์ด ํ์ํ ๊ฒฝ์ฐ, ๊ฐ์ด `1`๋ณด๋ค ์๋๋ผ๋ ๋ฐ๋์ `0`๋ณด๋ค ์ปค์ผํฉ๋๋ค. |
|||
|
|||
์ฆ, `0.5`๋ ์ ํจํ ๊ฐ์
๋๋ค. ๊ทธ๋ฌ๋ `0.0` ๋๋ `0`์ ๊ทธ๋ ์ง ์์ต๋๋ค. |
|||
|
|||
<abbr title="less than"><code>lt</code></abbr> ์ญ์ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค. |
|||
|
|||
```Python hl_lines="11" |
|||
{!../../../docs_src/path_params_numeric_validations/tutorial006.py!} |
|||
``` |
|||
|
|||
## ์์ฝ |
|||
|
|||
`Query`, `Path`(์์ง ๋ณด์ง ๋ชปํ ๋ค๋ฅธ ๊ฒ๋ค๋)๋ฅผ ์ฌ์ฉํ๋ฉด [์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์์ ๋ฌธ์์ด ๊ฒ์ฆ](query-params-str-validations.md){.internal-link target=_blank}์์์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฉํ๋ฐ์ดํฐ์ ๋ฌธ์์ด ๊ฒ์ฆ์ ์ ์ธํ ์ ์์ต๋๋ค. |
|||
|
|||
๊ทธ๋ฆฌ๊ณ ์ซ์ ๊ฒ์ฆ ๋ํ ์ ์ธํ ์ ์์ต๋๋ค: |
|||
|
|||
* `gt`: ํฌ๊ฑฐ๋(`g`reater `t`han) |
|||
* `ge`: ํฌ๊ฑฐ๋ ๊ฐ์(`g`reater than or `e`qual) |
|||
* `lt`: ์๊ฑฐ๋(`l`ess `t`han) |
|||
* `le`: ์๊ฑฐ๋ ๊ฐ์(`l`ess than or `e`qual) |
|||
|
|||
!!! info "์ ๋ณด" |
|||
`Query`, `Path`, ๊ทธ๋ฆฌ๊ณ ๋์ค์๊ฒ ๋ณด๊ฒ๋ ๊ฒ๋ค์ (์ฌ๋ฌ๋ถ์ด ์ฌ์ฉํ ํ์๊ฐ ์๋) ๊ณตํต `Param` ํด๋์ค์ ์๋ธ ํด๋์ค์
๋๋ค. |
|||
|
|||
๊ทธ๋ฆฌ๊ณ ์ด๋ค ๋ชจ๋๋ ์ฌํ๊น์ง ๋ณธ ์ถ๊ฐ ๊ฒ์ฆ๊ณผ ๋ฉํ๋ฐ์ดํฐ์ ๋์ผํ ๋ชจ๋ ๋งค๊ฐ๋ณ์๋ฅผ ๊ณต์ ํฉ๋๋ค. |
|||
|
|||
!!! note "๊ธฐ์ ์ธ๋ถ์ฌํญ" |
|||
`fastapi`์์ `Query`, `Path` ๋ฑ์ ์ํฌํธ ํ ๋, ์ด๊ฒ๋ค์ ์ค์ ๋ก ํจ์์
๋๋ค. |
|||
|
|||
ํธ์ถ๋๋ฉด ๋์ผํ ์ด๋ฆ์ ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ๋ฐํํฉ๋๋ค. |
|||
|
|||
์ฆ, ํจ์์ธ `Query`๋ฅผ ์ํฌํธํ ๊ฒ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํธ์ถํ๋ฉด `Query`๋ผ๋ ์ด๋ฆ์ ๊ฐ์ง ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ๋ฐํํฉ๋๋ค. |
|||
|
|||
ํธ์ง๊ธฐ์์ ํ์
์ ๋ํ ์ค๋ฅ๋ฅผ ํ์ํ์ง ์๋๋ก ํ๊ธฐ ์ํด (ํด๋์ค๋ฅผ ์ง์ ์ฌ์ฉํ๋ ๋์ ) ์ด๋ฌํ ํจ์๋ค์ด ์์ต๋๋ค. |
|||
|
|||
์ด๋ ๊ฒ ํ๋ฉด ์ค๋ฅ๋ฅผ ๋ฌด์ํ๊ธฐ ์ํ ์ฌ์ฉ์ ์ค์ ์ ์ถ๊ฐํ์ง ์๊ณ ๋ ์ผ๋ฐ ํธ์ง๊ธฐ์ ์ฝ๋ฉ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. |
Loadingโฆ
Reference in new issue