烧瓶url_for不使用蓝图构建基本路线

时间:2018-10-03 23:11:27

标签: flask

我目前有一条路线,例如

@mod.route("/server/power/<int:path>", methods=["GET"])
@mod.route("/server/resize/<int:path>", methods=["GET", "POST"])
@mod.route("/server/history/<int:path>", methods=["GET"])
@mod.route("/server/destroy/<int:path>", methods=["GET"])
@mod.route("/server/<int:path>", methods=["GET"])
@login_required
def server(path=None):
# do stuff
    return "ok"

问题是我正在尝试获取url_for以在被调用时返回此路由

@mod.route("/server/<int:path>", methods=["GET"])

但是当我这样做时:

url_for('admin.server', path=server_id)

它返回的网址

@mod.route("/server/resize/<int:path>", methods=["GET", "POST"])

如何获取返回的基本路线:

@mod.route("/server/<int:path>", methods=["GET"])

1 个答案:

答案 0 :(得分:0)

您可以命名特定的路由,因此通过将endpoint添加到路由中,我可以将url_for用于特定的路由

@mod.route("/server/power/<int:path>", methods=["GET"])
@mod.route("/server/resize/<int:path>", methods=["GET", "POST"])
@mod.route("/server/history/<int:path>", methods=["GET"])
@mod.route("/server/destroy/<int:path>", methods=["GET"])
@mod.route("/server/<int:path>", methods=["GET"], endpoint='server_default')
@login_required
def server(path=None):
    return 'ok'

所以当我打电话给url_for('admin.server_default', path=server_id)时,它会建立正确的网址

相关问题