본문 바로가기
반응형

Fastapi7

FastAPI 자습서 스터디 기록 (Extra Models) Extra Models의 경우 더 섬세한 입출력 검증위해 사용한다고 생각하시면 됩니다. 이때 중복도 감소하게 되어 클린한 코드를 유지할 수 있습니다.. 흔히 Python을 사용 해본사람은 알 수 있는 자료형들입니다. UUID: datetime.datetime: 파이썬의 datetime.datetime (2022-06-15T15:53:00+09:00) datetime.date: 파이썬의 datetime.date. (2022-06-15) datetime.time: 파이썬의 datetime.time. (18:20:00.123) datetime.timedelta: 파이썬의 datetime.timedelta. Decimal: 파이썬의 Decimal. 아래 코드와 같이 중복되는 것을 선언하고 상속을 받아 또 다른 .. 2022. 6. 14.
FastAPI 자습서 스터디 기록 (Response Model) 당연히 호출하는게 있다면 응답해주는게 있을것입니다. 이때도 형식과 필드를 지정하여 응답해줄 수 있습니다 사용 방법은 path 옵션으로 지정해주는 것입니다. @app.get() @app.post() @app.put() @app.delete() etc 특히 로그인이나 회원가입의 경우 password 필드가 존재합니다. 이때 패스워드를 리턴해준다면 보안상 안좋기때문에 아래와 같이 다른 필드를 리턴해주도록 할 수 있습니다. from typing import Union from fastapi import FastAPI from pydantic import BaseModel, EmailStr app = FastAPI() class UserIn(BaseModel): username: str password: str .. 2022. 6. 14.
FastAPI 자습서 스터디 기록 (Header Parameters) Header는 Path, Query 및 Cookie의 "자매"클래스입니다. 이 역시 동일한 공통 Param 클래스를 상속합니다. # Cookie from typing import Union from fastapi import Cookie, FastAPI app = FastAPI() @app.get("/items/") async def read_items(ads_id: Union[str, None] = Cookie(default=None)): return {"ads_id": ads_id} # Header from typing import Union from fastapi import FastAPI, Header app = FastAPI() @app.get("/items/") async def read_it.. 2022. 6. 12.
FastAPI 자습서 스터디 기록 (Multiple Parameters, Nested Models) 다수의 파라미터를 사용하려면 아래와 같이 BaseModel을 상속받아 만들면 됩니다. Django의 forms와 비슷하다고 생각이 듭니다. 해당 코드는 테스트를 위한 코드이기때문에 한 페이지에 표시 되었지만, 구조를 정해서 해당 구조에 맞게 관리하는것이 유지보수를 높일 수 있는 방법이지 않을까 합니다. from typing import Union from fastapi import Body, FastAPI from pydantic import BaseModel app = FastAPI() class Item(BaseModel): name: str description: Union[str, None] = None price: float tax: Union[float, None] = None class Us.. 2022. 6. 12.
FastAPI 자습서 스터디 기록 (Query Parameters and String and numeric Validations, ) 실제 path에는 없지만 쿼리에 사용되는 파라미터를 의미합니다. from typing import Union from fastapi import FastAPI, Query app = FastAPI() @app.get("/items/") async def read_items(q: Union[str, None] = Query(default=None, max_length=50)): results = {"items": [{"item_id": "Foo"}, {"item_id": "Bar"}]} if q: # 입력 된 q를 그냥 표시만 추가함 results.update({"q": q}) return results 결과는 이렇게 나오게 됩니다. 만약에 q를 필수 항목으로 두고 싶다면 아래와 같이 작성해줍니다. fro.. 2022. 6. 12.
FastAPI 자습서 스터디 기록 (Request Body, Pydantic) 데이터를 주고 받을때는 데이터가 올바른지 검증하는것이 중요합니다. 설치 및 매개변수에 대해 이전에 알아봤는데요~ FastAPI 자습서 스터디 기록 (설치 및 경로 매개변수, 쿼리 매개변수) 최초 설치 # 의존성 패키지까지 설치 pip install fastapi[all] uvicorn main:app --reload FastAPI는 docs (Swagger)와 redoc을 제공합니다. # path, 경로라고 합니다. # domain.com/ 뒤로 https://example.com/.. install-django.tistory.com 이번 포스팅은 Pydantic's BaseModel 사용에 관한 포스팅입니다. 데이터 검증을 위해서는 데이터 형식을 사전에 정의해두는 것이 중요합니다. 이때 BaseMode.. 2022. 6. 12.
FastAPI 자습서 스터디 기록 (설치 및 경로 매개변수, 쿼리 매개변수) 최초 설치 # 의존성 패키지까지 설치 pip install fastapi[all] uvicorn main:app --reload FastAPI는 docs (Swagger)와 redoc을 제공합니다. # path, 경로라고 합니다. # domain.com/ 뒤로 https://example.com/items/foo 경로 = /items/foo "경로"는 일반적으로 "앤드포인트" 또는 "라우트"라고도 불립니다. 대표적인 HTTP 메소드 POST, GET, PUT, DELETE 가 있으며,OPTIONS, HEAD, PATCH, TRACE 옵션들이 더 있습니다. from fastapi import FastAPI app = FastAPI() @app.get("/") async def root(): return {.. 2022. 6. 12.
반응형