Flask - перенаправить все маршруты определенного Blueprint на внешний сайт

у меня есть требование, когда я хочу, чтобы все маршруты определенного плана были перенаправлены на внешнюю веб-страницу.

В приведенном ниже примере я бы хотел, чтобы "/Store", "/Store/home", "/Store/products" были перенаправлены, скажем, на "google.com". в реальном сценарии может быть несколько маршрутов, сопоставленных с одним планом я бы хотел, чтобы другой план «/Online» остался нетронутым.

Вариант использования здесь заключается в том, что эти модули (маршруты blueprint1) были перемещены в другой домен, и я бы хотел, чтобы пользователи перенаправлялись, если они посещают любой из URL-адресов с префиксом «Магазин».

Кто-нибудь знает какую-либо функцию/обходной путь, который можно использовать для достижения этой цели?

from flask import Flask
from flask import Blueprint

app = Flask(__name__)
blueprint1 = Blueprint('example_blueprint', __name__)
blueprint2 = Blueprint('example_blueprint2', __name__)

@app.route('/')
def index():
    return "this is from root"

@blueprint1.route('/')
def index_b1():
    return "This is default route of blue print1"

@blueprint1.route('/home')
def index_b2():
    return "This is homepage of blue print"

@blueprint1.route('/products')
def index_b3():
    return "This is productpage of blue print"

@blueprint2.route('/')
def index_o1():
    return "This is default route of blue print 2"

app.register_blueprint(blueprint1,url_prefix='/Store')
app.register_blueprint(blueprint2,url_prefix='/Online')

if __name__ == "__main__":
    app.run(debug=True)
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
3
0
378
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Используйте after_request (или before_request)

@blueprint1.after_request
def after_request_func(response):
    return redirect('https://www.pythonkitchen.com')

@blueprint2.after_request
def after_request_func(response):
    return redirect('https://www.pythonkitchen.com')

Другие вопросы по теме