Develop/FastAPI

FastAPI Query Parameters - 08

동석해요 2022. 12. 22. 09:12
728x90
SMALL

1. dictionary 정의

BOOKS = {
    'book_1': {'title':'Title One','author':'Author One'},
    'book_2': {'title':'Title Two','author':'Author Two'},
    'book_3': {'title': 'Title Three', 'author': 'Author Three'},
    'book_4': {'title': 'Title Four', 'author': 'Author Four'},
    'book_5': {'title': 'Title Five', 'author': 'Author Five'},
}
 

2. 함수안에 매개변수 정의

  • skip_book은 string을 받고 Default 값으로 book_3으로 지정한다.
  • new_books라는 변수에 BOOKS dictionary을 copy(원본은 변하지 않음)
  • skip_book의 매개변수로 값이 들어 올 때 new_book의 키 값에 해당하는 값을 삭제 하고 return
@app.get("/")
async def read_all_books(skip_book: str = "book_3"):
    new_books = BOOKS.copy()
    del new_books[skip_book]
    return new_books

3. 함수안에 Optional 매개변수 정의

  • Optional 매개변수는 항상 끝에 존재해야한다.
  • OPtional은 단어 뜻 대로 선택사항으로 필수로 넘겨 줄 필요가 없다는 말
@app.get("/")
async def read_all_books(skip_book: Optional[str] = None):
    if skip_book:
        new_books = BOOKS.copy()
        del new_books[skip_book]
        return new_books
    return BOOKS
  • Default는 None으로 skip_book 값이 없으면 BOOKS를 return
  • skip_book값이 있다면 new_books를 return
728x90
SMALL