Как переопределить url_for во фляге, автоматически добавив строку «/foo» в качестве префикса URL-адреса, сгенерированного из url_for?

Это может выглядеть очень странно, но это именно то, чего я хочу добиться, это не связано с чертежами или добавлением префикса ко всем маршрутизаторам. Благодарность!


person X.C.    schedule 14.08.2019    source источник
comment
Можете ли вы добавить примеры желаемого результата?   -  person arsho    schedule 14.08.2019


Ответы (1)


Вы можете определить свои собственные:

# 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

Хотя, возможно, лучше просто импортировать и использовать собственную реализацию.

person dmitrybelyakov    schedule 14.08.2019