首页 > 解决方案 > 如何通过自动添加字符串'/foo'作为从url_for生成的url的前缀来重新定义flask中的url_for?

问题描述

它可能看起来很奇怪,但这正是我想要实现的,它与蓝图无关或为所有路由器添加前缀。谢谢!

标签: flaskurl-for

解决方案


您可以定义自己的:

# url_for_custom.py
import flask

def url_for(endpoint, **values):
    url = flask.url_for(endpoint, **values)
    if not values.get('_external', False):
        url = '/foo' + url
    return url

如果您希望全局更改它,您可以提前一段时间进行猴子补丁:

# __init__.py
import flask
from url_for_custom import url_for

flask.url_for = url_for

尽管简单地导入和使用您自己的实现可能会更好。


推荐阅读