committed by
GitHub
1 changed files with 74 additions and 0 deletions
@ -0,0 +1,74 @@ |
|||
# ํผ ๋ฐ์ดํฐ |
|||
|
|||
JSON ๋์ ํผ ํ๋๋ฅผ ๋ฐ์์ผ ํ๋ ๊ฒฝ์ฐ `Form`์ ์ฌ์ฉํ ์ ์์ต๋๋ค. |
|||
|
|||
/// info | ์ ๋ณด |
|||
|
|||
ํผ์ ์ฌ์ฉํ๋ ค๋ฉด, ๋จผ์ <a href="https://github.com/Kludex/python-multipart" class="external-link" target="_blank">`python-multipart`</a>๋ฅผ ์ค์นํ์ธ์. |
|||
|
|||
[๊ฐ์ ํ๊ฒฝ](../virtual-environments.md){.internal-link target=_blank}์ ์์ฑํ๊ณ ํ์ฑํํ ๋ค์, ์๋์ ๊ฐ์ด ์ค์นํ ์ ์์ต๋๋ค: |
|||
|
|||
```console |
|||
$ pip install python-multipart |
|||
``` |
|||
|
|||
/// |
|||
|
|||
## `Form` ์ํฌํธํ๊ธฐ |
|||
|
|||
`fastapi`์์ `Form`์ ์ํฌํธํฉ๋๋ค: |
|||
|
|||
{* ../../docs_src/request_forms/tutorial001_an_py39.py hl[3] *} |
|||
|
|||
## `Form` ๋งค๊ฐ๋ณ์ ์ ์ํ๊ธฐ |
|||
|
|||
`Body` ๋๋ `Query`์ ๋์ผํ ๋ฐฉ์์ผ๋ก ํผ ๋งค๊ฐ๋ณ์๋ฅผ ๋ง๋ญ๋๋ค: |
|||
|
|||
{* ../../docs_src/request_forms/tutorial001_an_py39.py hl[9] *} |
|||
|
|||
์๋ฅผ ๋ค์ด, OAuth2 ์ฌ์์ ์ฌ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ ์ค ํ๋("ํจ์ค์๋ ํ๋ก์ฐ"๋ผ๊ณ ํจ)๋ก `username`๊ณผ `password`๋ฅผ ํผ ํ๋๋ก ๋ณด๋ด์ผ ํฉ๋๋ค. |
|||
|
|||
<abbr title="specification">์ฌ์</abbr>์์๋ ํ๋ ์ด๋ฆ์ด `username` ๋ฐ `password`๋ก ์ ํํ๊ฒ ๋ช
๋ช
๋์ด์ผ ํ๊ณ , JSON์ด ์๋ ํผ ํ๋๋ก ์ ์กํด์ผ ํฉ๋๋ค. |
|||
|
|||
`Form`์ ์ฌ์ฉํ๋ฉด ์ ํจ์ฑ ๊ฒ์ฌ, ์์ , ๋ณ์นญ(์: `username` ๋์ `user-name`) ๋ฑ์ ํฌํจํ์ฌ `Body`(๋ฐ `Query`, `Path`, `Cookie`)์ ๋์ผํ ๊ตฌ์ฑ์ ์ ์ธํ ์ ์์ต๋๋ค. |
|||
|
|||
/// info | ์ ๋ณด |
|||
|
|||
`Form`์ `Body`์์ ์ง์ ์์๋๋ ํด๋์ค์
๋๋ค. |
|||
|
|||
/// |
|||
|
|||
/// tip | ํ |
|||
|
|||
ํผ ๋ณธ๋ฌธ์ ์ ์ธํ ๋, ํผ์ด ์์ผ๋ฉด ๋งค๊ฐ๋ณ์๊ฐ ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์๋ ๋ณธ๋ฌธ(JSON) ๋งค๊ฐ๋ณ์๋ก ํด์(interpret)๋๊ธฐ ๋๋ฌธ์ `Form`์ ๋ช
์์ ์ผ๋ก ์ฌ์ฉํด์ผ ํฉ๋๋ค. |
|||
|
|||
/// |
|||
|
|||
## "ํผ ํ๋"์ ๋ํด |
|||
|
|||
HTML ํผ(`<form></form>`)์ด ๋ฐ์ดํฐ๋ฅผ ์๋ฒ๋ก ๋ณด๋ด๋ ๋ฐฉ์์ ์ผ๋ฐ์ ์ผ๋ก ํด๋น ๋ฐ์ดํฐ์ ๋ํด "ํน์" ์ธ์ฝ๋ฉ์ ์ฌ์ฉํ๋ฉฐ, ์ด๋ JSON๊ณผ ๋ค๋ฆ
๋๋ค. |
|||
|
|||
**FastAPI**๋ JSON ๋์ ์ฌ๋ฐ๋ฅธ ์์น์์ ํด๋น ๋ฐ์ดํฐ๋ฅผ ์ฝ์ต๋๋ค. |
|||
|
|||
/// note | ๊ธฐ์ ์ธ๋ถ์ฌํญ |
|||
|
|||
ํผ์ ๋ฐ์ดํฐ๋ ์ผ๋ฐ์ ์ผ๋ก "๋ฏธ๋์ด ์ ํ(media type)" `application/x-www-form-urlencoded`๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์ฝ๋ฉํฉ๋๋ค. |
|||
|
|||
๊ทธ๋ฌ๋ ํผ์ ํ์ผ์ด ํฌํจ๋ ๊ฒฝ์ฐ, `multipart/form-data`๋ก ์ธ์ฝ๋ฉํฉ๋๋ค. ๋ค์ ์ฅ์์ ํ์ผ ์ฒ๋ฆฌ์ ๋ํด ์ฝ์ ๊ฒ๋๋ค. |
|||
|
|||
|
|||
์ด๋ฌํ ์ธ์ฝ๋ฉ ๋ฐ ํผ ํ๋์ ๋ํด ๋ ์ฝ๊ณ ์ถ๋ค๋ฉด, <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST" class="external-link" target="_blank"><code>POST</code>์ ๋ํ <abbr title="Mozilla Developer Network">MDN</a> ์น ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์. |
|||
|
|||
/// |
|||
|
|||
/// warning | ๊ฒฝ๊ณ |
|||
|
|||
*๊ฒฝ๋ก ์์
*์์ ์ฌ๋ฌ `Form` ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ธํ ์ ์์ง๋ง, JSON์ผ๋ก ์์ ํ ๊ฒ์ผ๋ก ์์๋๋ `Body` ํ๋์ ํจ๊ป ์ ์ธํ ์ ์์ต๋๋ค. ์์ฒญ ๋ณธ๋ฌธ์ `application/json` ๋์ ์ `application/x-www-form-urlencoded`๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์ฝ๋ฉ๋๊ธฐ ๋๋ฌธ์
๋๋ค. |
|||
|
|||
์ด๋ **FastAPI**์ ์ ํ ์ฌํญ์ด ์๋๋ฉฐ HTTP ํ๋กํ ์ฝ์ ์ผ๋ถ์
๋๋ค. |
|||
|
|||
/// |
|||
|
|||
## ์์ฝ |
|||
|
|||
ํผ ๋ฐ์ดํฐ ์
๋ ฅ ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ธํ๋ ค๋ฉด `Form`์ ์ฌ์ฉํ์ธ์. |
Loadingโฆ
Reference in new issue