Flask URL 不可用

1 投票
1 回答
1170 浏览
提问于 2025-04-18 15:22

我正在开发一个Flask应用,下面是views.py中的代码:

@bp.route('/talents/filters', methods=['POST'])
def talents_filters():
    form = TalentFilters()
    if form.validate_on_submit():
        set_filters(form)
    return redirect_back('.home')

@bp.route('/talents/filters/reset<path:uri>')
def talents_filters_reset(uri):
    return session['filters'][uri]

第一个网址可以正常工作,但第二个网址却出现了404错误。

第一个网址的工作情况是:

http://localhost:5000/admin/talents/filters

而对于第二个网址,我尝试的是:

http://localhost:5000/admin/talents/filters/reset?uri=%2Fadmin%2Ftalents%2F

但是它返回了404未找到的状态码。我完全不知道该怎么办。请帮帮我。

1 个回答

1

URL 查询参数(也就是问号后面的部分)并不是路径的一部分。它们不会被 <path:uri> 捕获;这个参数是用来寻找以 / 开头的路径元素的。

应该使用:

@bp.route('/talents/filters/reset')
def talents_filters_reset():
    uri = request.args['uri']
    return session['filters'][uri]

而是使用这个,其中 request.args 包含了所有解析过的请求参数。

撰写回答