В зависимости от того, что именно вы пытаетесь сделать, вы можете использовать переменные в маршруте или параметры запроса.
Flask Краткое руководство содержит хорошее введение в переменные в маршруте здесь . Например, в вашем случае вы должны сделать что-то вроде этого:
@api.route('/users/<int:page>', methods=['GET'])
def list_users(page):
users = User.query.all()
print(page) # the page argument contains the integer passed in the URL.
return jsonify(users=[i.serialize() for i in users])
Выше будет напечатано 1, если запрос был сделан к конечной точке /users/1
. Однако, если вы выберете этот подход, клиенту всегда нужно будет предоставить значение для страницы (т.е. запросы к конечной точке /user
не будут работать, если вы не добавите другой маршрут для обработки этой конечной точки).
С другой стороны, параметры запроса позволяют сделать параметр страницы необязательным, используя тот же маршрут. Для параметров запроса ваш клиент будет делать запрос, используя формат запроса (например, /users?page=1
). Чтобы использовать параметр запроса, вы должны настроить свой код следующим образом:
from flask import request
@api.route('/users', methods=['GET'])
def list_users():
users = User.query.all()
page = request.args.get('page', None)
if page is None:
# the page parameter was not given in the request, handle it accordingly
else:
# page parameter was in the request, handle it accordingly
return jsonify(users=[i.serialize() for i in users])