一尘不染

Flask和React路由

flask

我用React构建Flask应用程序,但最终遇到路由问题。

后端负责成为API,因此某些路由如下所示:

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

以及通往React的主要途径:

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

我在React应用程序中使用react-router,一切正常,react-router带我进入,/something并获得了渲染视图,但是当我刷新页面时,/somethingFlask应用程序会处理此调用,并且会Not Found出错。

最好的解决方案是什么?我正在考虑重定向所有未调用的调用/api/v1/...,/这是不理想的,因为我将返回应用程序的主页,而不是呈现React视图。


阅读 1002

收藏
2020-04-05

共1个答案

一尘不染

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响应中。

2020-04-05