Короткий ответ
Query-параметры доступны через объект flask.request.args, который ведёт себя как словарь с методом .get(), позволяющим указать значение по умолчанию и тип.
Как это работает подробнее
Flask парсит строку запроса (query string) из URL и складывает пары ключ-значение в request.args — объект MultiDict. Значения всегда приходят как строки, если не указать преобразование.
Пример кода
example.py
from flask import Flask, request
app = Flask(__name__)
@app.route("/search")
def search():
page = request.args.get("page", 1, type=int)
limit = request.args.get("limit", 10, type=int)
return {"page": page, "limit": limit}
# GET /search?page=3 -> {"page": 3, "limit": 10}
# GET /search -> {"page": 1, "limit": 10}Что использовать на практике
- Практика. Для чтения с преобразованием типа и значением по умолчанию удобно использовать
request.args.get('page', 1, type=int). Если параметр может повторяться (например, несколько тегов), используютrequest.args.getlist('tag').
Подводные камни
- Риск. Обращение к несуществующему параметру через
request.args['page']вызывает400 Bad Request(KeyError оборачивается Flask), вместо аккуратного.get()с дефолтом; забывают, что значения — строки, и сравнивают строку '2' с числом 2 без преобразования.