我用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出错。
/something
somethingFlask
最好的解决方案是什么?我正在考虑重定向所有未调用的调用/api/v1/...,/这是不理想的,因为我将返回应用程序的主页,而不是呈现React视图。
/api/v1/...,/
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响应中。
Flask routing
path