에듀테크 프로젝트 대시보드
쿼리 매개변수 (Query Parameters)
경로에 없는 함수 인자는 자동으로 쿼리스트링에서 읽습니다.
@app.get("/items")
def list_items(skip: int = 0, limit: int = 10):
return items[skip : skip + limit]
# "/items" -> skip=0, limit=10
# "/items?skip=20&limit=5" -> skip=20, limit=5# 기본값이 없으면 필수
@app.get("/search")
def search(q: str): # ?q= 없으면 422
...
# None 허용 = 선택
@app.get("/search2")
def search2(q: str | None = None):
...@app.get("/items/{id}")
def read(id: int, verbose: bool = False):
...
# ?verbose=1 / true / True / yes / on -> True
# ?verbose=0 / false / no / off -> Falsefrom typing import Annotated
from fastapi import Query
@app.get("/items")
def read(tags: Annotated[list[str], Query()] = []):
return {"tags": tags}
# "/items?tags=a&tags=b" -> tags == ["a", "b"]@app.get("/items")
def read(
q: Annotated[str | None, Query(
min_length=2, max_length=50,
pattern=r"^[a-z]+$",
description="검색어",
deprecated=False,
)] = None,
):
...