Атрибут query_params
Атрибут query_params класса Request содержит query-параметры запроса в виде словаря. Он применяется внутри обработчиков FastAPI, когда нужно получить доступ к параметрам строки запроса напрямую, без объявления их в сигнатуре функции. Атрибут возвращает объект QueryParams, который ведёт себя как обычный словарь.
Синтаксис
request.query_params
Пример
Давайте получим все query-параметры в обработчике и вернём их в виде словаря:
from fastapi import FastAPI, Request
app = FastAPI()
@app.get('/items')
def get_items(request: Request):
return dict(request.query_params)
Результат выполнения кода для адреса /items?a=1&b=2&c=3:
{"a": "1", "b": "2", "c": "3"}
Пример
Давайте получим значение конкретного query-параметра через метод get:
from fastapi import FastAPI, Request
app = FastAPI()
@app.get('/user')
def get_user(request: Request):
name = request.query_params.get('name', 'guest')
return {'name': name}
Результат выполнения кода для адреса /user?name=abcde:
{"name": "abcde"}
Пример
Давайте проверим наличие query-параметра и вернём список всех ключей:
from fastapi import FastAPI, Request
app = FastAPI()
@app.get('/search')
def search(request: Request):
if 'q' in request.query_params:
return {'keys': list(request.query_params.keys())}
return {'keys': []}
Результат выполнения кода для адреса /search?q=hello&page=1:
{"keys": ["q", "page"]}
Смотрите также
-
класс
Request,
который представляет HTTP-запрос -
атрибут
path_params,
который содержит параметры пути запроса -
атрибут
headers,
который содержит заголовки запроса -
атрибут
url,
который содержит полный URL запроса