我正在使用“蓝图”开发Python Flask api,我想在一条路线上对结果进行分页。如果用户包括查询参数“ page =”,我想获取该值。我该怎么办?
在此示例代码中:
@api.route('/users', methods=['GET'])
def list_users():
users = User.query.all()
return jsonify(users=[i.serialize() for i in users])
我想添加一个if页面参数。谢谢!我是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])
如果向/users/1
端点发出请求,则上面将打印1。但是,如果您选择这种方法,则客户端将始终需要为页面提供一个值(即,除非您添加其他路由来处理该端点,否则对端点/user
的请求将不起作用)。
另一方面,查询参数使您可以使用相同的路由将page参数设为可选。对于查询参数,您的客户端将使用查询格式(例如/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])