โ¶
FastAPI โ¶
FastAPI ๐ค ๐ ๐:
โ๏ธ ๐ ๐ ๐ฉ¶
- ๐ ๐ ๏ธ ๐, โ ๐ โก ๐ ๏ธ, ๐ข, ๐ช ๐จ, ๐โโ, โ๏ธ.
- ๐ง ๐ ๐ท ๐งพ โฎ๏ธ ๐ป ๐ (๐ โซ๏ธ ๐งข ๐ ๐ป ๐).
- ๐ง ๐คญ ๐ซ ๐ฉ, โฎ๏ธ ๐ ๐ฌ. โฉ๏ธ ๐ ๐งฝ ๐ ๐.
- ๐ โ โ๏ธ ๐ง ๐ฉโ๐ป ๐ โก ๐ ๐ช๐ธ.
๐ง ๐ฉบ¶
๐ ๐ ๏ธ ๐งพ & ๐ฌ ๐ธ ๐ฉโ๐ป ๐ข. ๐ ๏ธ โ๏ธ ๐ ๐, ๐ค ๐ ๐, 2๏ธโฃ ๐ ๐ข.
- ๐ฆ ๐, โฎ๏ธ ๐ ๐ฌ, ๐ค & ๐ฏ ๐ ๐ ๏ธ ๐ โช๏ธโก๏ธ ๐ฅ.
- ๐ ๐ ๏ธ ๐งพ โฎ๏ธ ๐.
๐ ๐¶
โซ๏ธ ๐ โ๏ธ ๐ ๐ฉ ๐ 3๏ธโฃ.6๏ธโฃ ๐ ๐ (๐ Pydantic). ๐ โโ ๐ โ ๐ก. ๐ฉ ๐ ๐.
๐ฅ ๐ ๐ช 2๏ธโฃ โฒ โ๏ธ โ โ๏ธ ๐ ๐ (๐ฅ ๐ ๐ซ โ๏ธ FastAPI), โ ๐ ๐ฐ: ๐ ๐.
๐ โ ๐ฉ ๐ โฎ๏ธ ๐:
from datetime import date
from pydantic import BaseModel
# Declare a variable as a str
# and get editor support inside the function
def main(user_id: str):
return user_id
# A Pydantic model
class User(BaseModel):
id: int
name: str
joined: date
๐ ๐ช โคด๏ธ โ๏ธ ๐:
my_user: User = User(id=3, name="John Doe", joined="2018-07-19")
second_user_data = {
"id": 4,
"name": "Mary",
"joined": "2018-11-30",
}
my_second_user: User = User(**second_user_data)
Info
**second_user_data
โ:
๐ถโโ๏ธ ๐ & ๐ฒ second_user_data
#๏ธโฃ ๐ ๐-๐ฒ โ, ๐: User(id=4, name="Mary", joined="2018-11-30")
๐จโ๐จ ๐โ๐ฆบ¶
๐ ๐ ๏ธ ๐ โฉ & ๐๏ธ โ๏ธ, ๐ ๐ซ ๐ฏ ๐ ๐ ๐จโ๐จ โญ โถ๏ธ ๐ ๏ธ, ๐ ๐ ๐ ๏ธ ๐ก.
๐ ๐ ๐ฉโ๐ป ๐ฌ โซ๏ธ ๐ ๐ ๐ โ๏ธ โ "โ".
๐ FastAPI ๐ ๏ธ โ๏ธ ๐ ๐. โ ๐ท ๐.
๐ ๐ ๐ ๐ช ๐ ๐ ๐ฉบ.
๐ฅ โ ๐ ๐จโ๐จ ๐ช โน ๐:
- ๐:
๐ ๐ ๐ค ๐ ๏ธ ๐ ๐ 5๏ธโฃ๐ ๐ค ๐ช โญ. ๐ผ, price
๐ ๐ ๐ป ๐ช (๐ ๐ช โ๏ธ ๐ฆ) ๐ ๐ โช๏ธโก๏ธ ๐จ.
๐
โโ ๐ โจ โ ๐ ๐, ๐ ๐ & โก ๐ ๐ฉบ, โ๏ธ ๐ ๐ & ๐ฝ ๐ ๐ฅ ๐ ๐ โ๏ธ username
โ๏ธ user_name
.
๐¶
โซ๏ธ โ๏ธ ๐ค ๐ข ๐, โฎ๏ธ ๐ฆ ๐ณ ๐. ๐ ๐ข ๐ช ๐-๐ง โซ๏ธโ ๐ ๐ช & ๐ฌ ๐ ๏ธ ๐ ๐ช.
โ๏ธ ๐ข, โซ๏ธ ๐ "๐ท".
๐ฌ¶
-
๐ฌ ๐ (โ๏ธ ๐ โ) ๐ ๐ฝ ๐, ๐:
- ๐ป ๐ (
dict
). - ๐ป ๐ป (
list
) โ ๐ฌ ๐. - ๐ป (
str
) ๐, ๐ฌ ๐ & ๐ ๐. - ๐ข (
int
,float
) โฎ๏ธ ๐ & ๐ ๐ฒ, โ๏ธ.
- ๐ป ๐ (
-
๐ฌ ๐ ๐ ๐, ๐:
- ๐.
- ๐ง.
- ๐.
- ...& ๐.
๐ ๐ฌ ๐ต ๐-๐ & ๐๏ธ Pydantic.
๐โโ & ๐ค¶
๐โโ & ๐ค ๐ ๏ธ. ๐ต ๐ โ โฎ๏ธ ๐ฝ โ๏ธ ๐ ๐ท.
๐ ๐โโ โ ๐ฌ ๐, ๐:
- ๐บ๐ธ๐ ๐ฐ.
- Oauth2๏ธโฃ (โฎ๏ธ ๐ฅ ๐ค). โ ๐ฐ ๐ Oauth2๏ธโฃ โฎ๏ธ ๐ฅ.
- ๐ ๏ธ ๐:
- ๐.
- ๐ข ๐ข.
- ๐ช, โ๏ธ.
โ ๐ ๐โโ โ โช๏ธโก๏ธ ๐ (๐ ๐ ๐ช).
๐ ๐ โป ๐งฐ & ๐ฆฒ ๐ โฉ ๐ ๏ธ โฎ๏ธ ๐ โ๏ธ, ๐ ๐ช, ๐ & โ ๐ฝ, โ๏ธ.
๐ ๐¶
FastAPI ๐ ๐ถ โฉ โ๏ธ, โ๏ธ ๐ถ ๐๏ธ ๐ ๐ โ๏ธ.
- ๐ ๐ช โ๏ธ ๐, ๐ ๐ โ๏ธ "๐" ๐.
- ๐ ๐ ๐ต ๐ ๏ธ.
- ๐ ๐ ๐ช ๐ ๐ฝ โช๏ธโก๏ธ ๐จ & โ โก ๐ ๏ธ โ & ๐ง ๐งพ.
- ๐ง ๐ฌ โก ๐ ๏ธ ๐ข ๐ฌ ๐.
- ๐โ๐ฆบ ๐ ๐ฉโ๐ป ๐ค โ๏ธ, ๐ฝ ๐, โ๏ธ.
- ๐ โโ โ โฎ๏ธ ๐ฝ, ๐ธ, โ๏ธ. โ๏ธ โฉ ๐ ๏ธ โฎ๏ธ ๐ ๐ซ.
โพ "๐-๐"¶
โ๏ธ ๐ ๐, ๐ โโ ๐ช ๐ซ, ๐ & โ๏ธ ๐ ๐ ๐ช.
๐ ๐ ๏ธ ๐ ๐ โ๏ธ (โฎ๏ธ ๐) ๐ ๐ ๐ช โ "๐-" ๐ ๐ธ 2๏ธโฃ โธ ๐ โ๏ธ ๐ ๐ & โ โ๏ธ ๐ โก ๐ ๏ธ.
๐ฏ¶
- 1๏ธโฃ0๏ธโฃ0๏ธโฃ ๐ฏ ๐ฏ ๐ฐ.
- 1๏ธโฃ0๏ธโฃ0๏ธโฃ ๐ฏ ๐ โ ๐ ๐งข.
- โ๏ธ ๐ญ ๐ธ.
๐ โ¶
FastAPI ๐ ๐ โฎ๏ธ (& โ๏ธ ๐) ๐. , ๐ ๐ ๐ ๐ ๐ โ๏ธ, ๐ ๐ท.
FastAPI
๐ค ๐ง-๐ Starlette
. , ๐ฅ ๐ โช ๐ญ โ๏ธ โ๏ธ ๐, ๐
๐ ๏ธ ๐ ๐ท ๐ ๐.
โฎ๏ธ FastAPI ๐ ๐ค ๐ ๐'โ โ (FastAPI ๐ ๐ ๐):
- ๐ค ๐ ๐ญ. โซ๏ธ 1๏ธโฃ โฉ ๐ ๐ ๏ธ ๐ช, ๐ ๐ท๐ช โฎ๏ธ โณ & ๐ถ.
- ** *๏ธโฃ ** ๐โ๐ฆบ.
- -๐ ๏ธ ๐ฅ ๐.
- ๐ด & ๐คซ ๐.
- ๐ฏ ๐ฉโ๐ป ๐ ๐ ๐ธ๐ฒ.
- โ, ๐, ๐ป ๐, ๐ ๐จ.
- ๐ & ๐ช ๐โ๐ฆบ.
- 1๏ธโฃ0๏ธโฃ0๏ธโฃ ๐ฏ ๐ฏ ๐ฐ.
- 1๏ธโฃ0๏ธโฃ0๏ธโฃ ๐ฏ ๐ โ โ.
Pydantic โ¶
FastAPI ๐ ๐ โฎ๏ธ (& โ๏ธ ๐) Pydantic. , ๐ ๐ Pydantic ๐ ๐ โ๏ธ, ๐ ๐ท.
โ ๐ข ๐ โ๏ธ ๐ Pydantic, ๐โ, ๐ญโ ๐ฝ.
๐ โ ๐ ๐ ๐ผ ๐ ๐ช ๐ถโโ๏ธ ๐ ๐ ๐ ๐ค โช๏ธโก๏ธ ๐จ ๐ ๐ฝ, ๐ โ ๐.
๐ โ ๐ ๐ ๐คญ, ๐ ๐ผ ๐ ๐ช ๐ถโโ๏ธ ๐ ๐ ๐ค โช๏ธโก๏ธ ๐ฝ ๐ ๐ฉโ๐ป.
โฎ๏ธ FastAPI ๐ ๐ค ๐ Pydantic'โ โ (FastAPI โ๏ธ ๐ Pydantic ๐ ๐ฝ ๐):
- ๐
โโ ๐ :
- ๐ โโ ๐ ๐ ๐ โพ-๐ช๐ธ ๐ก.
- ๐ฅ ๐ ๐ญ ๐ ๐ ๐ ๐ญ โ โ๏ธ Pydantic.
- ๐คพ ๐ โฎ๏ธ ๐ ๐พ/๐งถ/๐ง :
- โฉ๏ธ Pydantic ๐ ๐ ๐ ๐ ๐ ๐ฌ; ๐-๐ ๏ธ, ๐งฝ, โ & ๐ ๐ค ๐ ๐ ๐ท โ โฎ๏ธ ๐ โ ๐ฝ.
- โฉ:
- ๐ Pydantic โฉ ๐ ๐ ๐ ๐ฏ ๐.
- โ ๐ ๐:
- โ๏ธ ๐ Pydantic ๐ท, ๐
typing
'โList
&Dict
, โ๏ธ. - & ๐ณ โ ๐ ๐ฝ ๐ ๐ฏ & ๐ช ๐ฌ, โ & ๐ ๐ป ๐.
- ๐ ๐ช โ๏ธ ๐ ๐ฆ ๐ป ๐ & โ๏ธ ๐ซ ๐ โ & โ.
- โ๏ธ ๐ Pydantic ๐ท, ๐
- ๐ง:
- Pydantic โ ๐ ๐ ๐ ๐ฌ โ๏ธ ๐ ๐ช โ ๐ฌ โฎ๏ธ ๐ฉโ๐ฌ ๐ ๐ท ๐ โฎ๏ธ ๐ณ ๐จโ๐จ.
- 1๏ธโฃ0๏ธโฃ0๏ธโฃ ๐ฏ ๐ฏ ๐ฐ.