Python使用Flask路由问题

Python使用Flask路由问题,python,flask,routes,Python,Flask,Routes,我有以下功能,可以选择多条路线: @bp.route('/list/', defaults={'status': None, 'time': None, 'search': None}) @bp.route('/list/lot/', defaults={'status': None, 'search': None, 'time': None}) @bp.route('/list/lot/<string:time>/', defaults={'status': None, 'sear

我有以下功能,可以选择多条路线:

@bp.route('/list/', defaults={'status': None, 'time': None, 'search': None})
@bp.route('/list/lot/', defaults={'status': None, 'search': None, 'time': None})
@bp.route('/list/lot/<string:time>/', defaults={'status': None, 'search': None})
@bp.route('/list/lot/<string:time>/<string:status>', defaults={'search': None})
@bp.route('/list/lot/<string:time>/<string:status>?search=<path:search>')
@login_required
def index(status, time, search):
    print(search)
我不明白为什么,打印总是返回
None

有什么想法吗


谢谢在
后面的部分是查询字符串。我99%确定Flask在匹配路由时会删除查询字符串(我无法在文档中确认这一点,因此为1%)。这意味着在匹配路由时,以下URL是相同的

http://192.168.10.88:5000/list/lot/OLDER/NEW?search=test
http://192.168.10.88:5000/list/lot/OLDER/NEW
另一种方法是(我认为)对所有变量使用查询字符串

@bp.route('/list/')
@bp.route('/list/lot/')
@login_required
def index():
    status = request.args.get('status', default=None)
    time = request.args.get('time', default=None)
    search = request.args.get('search', default=None)

    print(search)

如果要获取查询字符串,可以使用
request
request.query\u string

from flask import request

@bp.route('/list/', defaults={'status': None, 'time': None, 'search': None})
@bp.route('/list/lot/', defaults={'status': None, 'search': None, 'time': None})
@bp.route('/list/lot/<string:time>/', defaults={'status': None, 'search': None})
@bp.route('/list/lot/<string:time>/<string:status>', defaults={'search': None})
@bp.route('/list/lot/<string:time>/<string:status>?search=<path:search>')
@login_required
def index(status, time, search):
    print(request.query_string, request.args.get('search'), time, status)
    #  b'search=test' test OLDER NEW
    return 'OK'
Url如下所示:

http://192.168.10.88:5000/list/lot/parameters?time=OLDER&status=NEW&search=test
我认为,您应该通过
请求
获取搜索数据。不在函数参数中。只需从flask导入请求导入
,然后在函数内部导入
request.args.get('search')
@bp.route('/list/lot/parameters')
@login_required
def index():
    print(request.args.get('time'), request.args.get('status'), request.args.get('search'))
    return 'OK'
http://192.168.10.88:5000/list/lot/parameters?time=OLDER&status=NEW&search=test