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

How to redefine url_for in flask by automatically adding a string '/foo' as a prefix of the url generated from url_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

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