一尘不染

flask:获取当前路线

flask

在Flask中,当我为同一功能使用多个路由时,如何知道当前使用的是哪个路由?

例如:

@app.route("/antitop/")
@app.route("/top/")
@requires_auth
def show_top():
    ....

我怎么知道,现在我被称为使用/top//antitop/

更新

我知道request_path我不想使用它,因为请求可能相当复杂,并且我想在函数中重复路由逻辑。我认为url_rule最好的解决方案。


阅读 434

收藏
2020-04-06

共2个答案

一尘不染

检查触发你的视图的路线的最“轻松”方法是request.url_rule。

from flask import request

rule = request.url_rule

if 'antitop' in rule.rule:
    # request by '/antitop'

elif 'top' in rule.rule:
    # request by '/top'
2020-04-06
一尘不染

只需使用request.path

from flask import request

...

@app.route("/antitop/")
@app.route("/top/")
@requires_auth
def show_top():
    ... request.path ...
2020-04-06