python - 通过 Flask-Python 为 React 生产应用程序(本地服务器)提供服务

标签 python node.js reactjs flask production-environment

我正在使用这两种技术制作一个应用程序:React-app 和 Flask-Python。它旨在运行一个 react 客户端来表示从 Flask 服务器接收到的数据。 Flask 服务器和 React 客户端在同一台机器上,并通过套接字 (SocketIO) 进行通信。

在开发模式下,为了运行应用程序,我必须使用 npm start (node) 运行 react 服务器,使用 python 运行 flask 服务器。

在生产模式下,在构建 React 服务器后,我必须使用 Node.js 上可用的服务选项来提供构建文件夹。否则该应用程序将无法正常工作(我认为这是因为我使用了 react-router,当我转到我的 react 应用程序的另一个地方时,浏览器找不到指定的 URL。当使用 Node 的服务选项提供构建文件夹时,没有出现问题)。

所以,我的问题是:我可以使用 flask 而不是 Node 的服务选项来提供我的 React 应用程序的构建文件夹吗?我想这样做,以消除对 Node.js 的依赖,这样如果我想在另一台机器上运行我的应用程序,我就不必安装 Node 。

最佳答案

是的,可以在带有 static 文件夹/文件的 flask 中完成。您需要在项目中创建一个名为 static 的文件夹。想象一下这个文件夹结构:

├── server/
└── static/
    ├── css/
    ├── dist/
    ├── images/
    └── js/
        index.html

对于您的 React 应用,您唯一需要做的就是构建 npm run build

在 flask 中你应该设置这个静态文件夹以便使用。你需要一个简化版本:

# server.py
from flask import Flask, render_template

app = Flask(__name__, static_folder="../static/dist", template_folder="../static")

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

@app.route("/hello")
def hello():
    return "Hello World!”

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

所以根路径/会显示react。 /hello 路径将显示来自 flask 的响应。

关于python - 通过 Flask-Python 为 React 生产应用程序(本地服务器)提供服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49858421/

相关文章:

python - 什么时候需要 Queue.join() ?

python-requests - 无法登录

node.js - 使用 Mongoose 中的 promise 进行 Passport 身份验证

javascript - React/MUI Popover 使用 anchorPosition 定位不正确

reactjs - 如何在Prod中使用Docker和Nginx运行React?

javascript - 为什么变量++的工作方式与变量+1不同

python在扫描mp3元数据后删除不需要的字符

javascript - crypto.createCipheriv -> cipher.update + cipher.final 不返回缓冲区?

javascript - Nodejs 为什么常量应该是变量

python - 分布式 tensorflow : ValueError “When: When using replicas, all Variables must have their device set” set: name: "Variable"