Python 烧瓶:获取当前路线

Python 烧瓶:获取当前路线,python,url,flask,Python,Url,Flask,在烧瓶中,当我有多条路径用于相同的功能时, 我怎么知道现在使用哪条路线 例如: @app.route("/antitop/") @app.route("/top/") @requires_auth def show_top(): .... 我怎么知道现在的路线是用/top/或/antitop/调用的 更新 我知道request.path我不想使用它,因为请求可能相当复杂,我想在函数中重复路由逻辑。我认为使用url\u规则的解决方案是最好的。只需使

在烧瓶中,当我有多条路径用于相同的功能时, 我怎么知道现在使用哪条路线

例如:

@app.route("/antitop/")
@app.route("/top/")
@requires_auth
def show_top():
    ....
我怎么知道现在的路线是用
/top/
/antitop/
调用的

更新


我知道
request.path
我不想使用它,因为请求可能相当复杂,我想在函数中重复路由逻辑。我认为使用
url\u规则的解决方案是最好的。

只需使用即可


在我看来,如果你有一个重要的情况,你不应该使用相同的功能放在首位。将其拆分为两个单独的处理程序,每个处理程序都会调用共享代码的一个常见虚构部分。

检查触发视图的路由的最“灵活”的方法是


如果希望每个路由具有不同的行为,正确的做法是创建两个函数处理程序

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

@app.route("/top/")
@requires_auth
def anti_top():
    ...
在某些情况下,您的结构是有意义的。可以设置每个管线的值

@app.route("/antitop/", defaults={'_route': 'antitop'})
@app.route("/top/", defaults={'_route': 'top'})
@requires_auth
def show_top(_route):
    # use _route here
    ...

另一个选项是使用端点变量:

@app.route("/api/v1/generate_data", methods=['POST'], endpoint='v1')
@app.route("/api/v2/generate_data", methods=['POST'], endpoint='v2')
def generate_data():
    version = request.endpoint
    return version

应该怎么办?我认为用<代码> URLYReals的解决方案是最好的,但是无论如何谢谢你,+1Upple仅仅是因为你困扰了导入语句。这是一个很好的解决方案,但是考虑一下@ McCukZuMnsik'的解决方案。我觉得它更优雅。
@app.route("/antitop/", defaults={'_route': 'antitop'})
@app.route("/top/", defaults={'_route': 'top'})
@requires_auth
def show_top(_route):
    # use _route here
    ...
@app.route("/api/v1/generate_data", methods=['POST'], endpoint='v1')
@app.route("/api/v2/generate_data", methods=['POST'], endpoint='v2')
def generate_data():
    version = request.endpoint
    return version