HANCOM AI ACAMEMY/수업 및 플젝

FastAPI : 5월 7일

c'est sunny 2025. 5. 7.

의존성 예제

# 공통적으로 사용하는 파라미터 page, size를 재사용할 수 있는 pagination()함수를 만들어서 /books, /movies 경로에서 사용

from fastapi import Query, FastAPI, Depends

app = FastAPI()

def pagination(page: int = Query(10), size: int = Query(10)):
    return {"page": page, "size" : size}

@app.get("/books")
def get_books(params: dict = Depends(pagination)):
    return params

@app.get("/movies")
def get_movies(params: dict = Depends(pagination)):
    return params

 

 

이 예제에서 Query의 역할은 쿼리 파라미터를 처리하고 기본값을 지정하는 거야.

Query(10)은 쿼리 파라미터가 없을 때 기본값을 10으로 설정한다는 의미야. page와 size는 각각 페이지 번호와 항목의 개수를 나타내는 쿼리 파라미터를 받는 거야.

즉, 쿼리 파라미터 page와 size를 URL에서 동적으로 받도록 하고, 이 값들을 기반으로 페이지네이션(pagination)을 처리할 수 있도록 돕는 역할을 해.

 

예시 1: GET /books?page=2&size=20

  • page는 2, size는 20으로 설정됨
  • 반환된 결과는 { "page": 2, "size": 20 }

예시 2: GET /books

  • 쿼리 파라미터가 없으므로 기본값으로 page=10, size=10
  • 반환된 결과는 { "page": 10, "size": 10 }

왜 Query가 중요한가?

  • Query를 사용하면 URL에서 page, size와 같은 값을 명시적으로 받을 수 있고, Depends를 사용해 이 값을 다른 경로에서 재사용 가능하게 만든 거야.
  • pagination() 함수는 page, size를 모두 처리하므로 /books와 /movies에서 공통으로 사용할 수 있어.

간단히 말하자면, Query는 URL에서 전달되는 쿼리 파라미터를 처리하고, 기본값을 설정하는 역할을 해.

'HANCOM AI ACAMEMY > 수업 및 플젝' 카테고리의 다른 글

debounce 문제해결  (0) 2025.06.25
플젝 2주차 : 6월 17일  (0) 2025.06.17
파이썬(FastAPI) : 5월 2일  (0) 2025.05.02
파이썬(FastAPI) : 4월 30일  (0) 2025.04.30
헷갈려서 정리하는 pandas (2)  (0) 2025.04.16

댓글