Подтвердить что ты не робот

Фляжка и ретрансляция

Я создаю приложение Flask с помощью React, у меня возникла проблема с маршрутизацией.

Бэкэнд отвечает за API, поэтому некоторые маршруты выглядят следующим образом:

@app.route('/api/v1/do-something/', methods=["GET"])
def do_something():
    return something()

и основной маршрут, который ведет к Реагированию:

@app.route('/')
def index():
    return render_template('index.html')

Я использую react-router в приложении React, все работает нормально, response-router принимает меня на /something, и я получаю визуализированный вид, но когда я обновляю страницу на /something, тогда приложение Flask позаботится об этом вызове, и я получаю ошибку Not Found.

Какое оптимальное решение? Я думал о перенаправлении всех вызовов, которые не звонят /api/v1/... в /, это не идеально, поскольку я верну домашнюю страницу своего приложения, а не визуализирую представление React.

4b9b3361

Ответ 1

Мы использовали все URL-адреса для этого.

from flask import Flask
app = Flask(__name__)

@app.route('/', defaults={'path': ''})
@app.route('/<path:path>')
def catch_all(path):
    return 'You want path: %s' % path

if __name__ == '__main__':
    app.run()

Вы также можете пройти лишнюю милю и повторно использовать систему Flask routing для соответствия path тем же маршрутам, что и клиент, чтобы вы могли встраивать клиента данных в JSON в ответ HTML.