Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- konlpy
- 파이썬웹개발
- fastapi
- chatGPT
- 머신러닝
- pytorch
- 파이토치
- python 정렬
- sklearn
- Python
- fastapi #파이썬웹개발
- fastapi #python웹개발
- programmablesearchengine
- 판다스 데이터정렬
- HTML
- langchain
- 딥러닝
- OpenAIAPI
- deeplearning
- MachineLearning
- 판다스
- 자연어분석
- 비지도학습
- NLP
- 파이토치기본
- pandas
- 사이킷런
- 챗gpt
- 파이썬
- 랭체인
Archives
- Today
- Total
Data Navigator
FastAPI 설치 환경 세팅 및 간단한 테스트 웹 만들기3 - pydantic 으로 유효성 검사하기 본문
FastAPI 설치 환경 세팅 및 간단한 테스트 웹 만들기3
- pydantic 으로 유효성 검사하기, 입력값 샘플 등록하기 -
1. pydantic 으로 유효성 검사하기
Pydantic은 Python의 데이터 유효성 검사 라이브러리입니다. Pydantic은 Python의 타입 힌트를 활용하여 데이터 유효성 검사와 설정 관리를 자동화하는 강력한 라이브러리로, 개발자가 데이터 모델을 정의할 때 명확한 데이터 타입을 지정함으로써, Pydantic은 이 모델을 기반으로 데이터의 유효성을 자동으로 검증합니다.
2. pydantic으로 유효성 검사해서 입력 받도록 수정하기
1) todo 디렉토리에 model.py를 새로 만들고 pydantic의 basemodel 클래스를 상속받아 id와 item 속성을 지정하자
# model.py
from pydantic import BaseModel
class Todo(BaseModel):
id : int
item : str
2) todo.py 에 있는 add_todo 함수의 입력값을 model.py에서 정의한 Todo 클래스로 받도록 수정하기
# todo.py
@todo_router.post("/todo")
async def add_todo(todo: Todo) -> dict:
todo_list.append(todo)
return {
"message" : "Todo added successfully."
}
3) 서버 실행 후 localhost:8000/docs 에서 post /todo 에서 try it out 을 누르고 빈 딕셔너리를 전송해 보자.
Execute를 누르면 아래와 같이 에러가 나는 것을 확인 할 수 있다.
4) 이번에는 다시 try it out을 누르고 Request body에 {"id" : 1, "item" : "테스트"} 를 입력하고 Execute를 입력해 보자.
그러면 아래와 같이 정상적으로 200 응답이 뜨면서 "message" : "Todo added successfully" 가 출력된다.
3. 입력값 샘플 등록하기
1) JSON 스키마를 올바르게 생성하기 위해 model.py의 Todo class에 사용자가 입력해야 할 데이터의 샘플을 설정한다.
# model.py
from pydantic import BaseModel
class Todo(BaseModel):
id : int
item : str
class Config:
json_schema_extra = {
"example" : {
"id" : 1,
"item" : "Example Schema!"
}
}
2) localhost:8000/docs에 들어가서 확인
post부분의 드롭다운 메뉴를 클릭하면 작성했던 예시가 보이는 것을 확인 할 수 있다.
출처: 아데시나, 압둘라지즈 압둘라지즈. FastAPI를 사용한 파이썬 웹 개발. 번역 김완섭. 한빛미디어, 2023
'FastAPI' 카테고리의 다른 글
FastAPI 설치 환경 세팅 및 간단한 테스트 웹 만들기6 - todo 목록 반환 모델 만들기 (0) | 2024.05.08 |
---|---|
FastAPI 설치 환경 세팅 및 간단한 테스트 웹 만들기5 - CRUD 구현 하기 (0) | 2024.05.08 |
FastAPI 설치 환경 세팅 및 간단한 테스트 웹 만들기4 - 경로 매개변수와 쿼리 매개변수 (0) | 2024.05.04 |
FastAPI 설치 환경 세팅 및 간단한 테스트 웹 만들기2 - Routing (0) | 2024.05.03 |
FastAPI 설치 환경 세팅 및 간단한 테스트 웹 만들기 (0) | 2024.05.03 |