【问题标题】:Can I add a Flask server to an existing Node web app?我可以将 Flask 服务器添加到现有的 Node Web 应用程序吗?
【发布时间】:2019-02-08 22:27:07
【问题描述】:

我有一个网络应用程序和一些 Python 脚本,我想在一些输入的文本上运行。我环顾四周,似乎 Flask 是解决此问题的最佳解决方案,但这是否意味着我将拥有两个 Web 服务器?

那么当用户提交一些文本,运行 Python 脚本,然后停止 Flask 服务器时,我会启动 Flask 服务器吗?我该怎么做?该应用程序是 JS/jQuery。

另一个解决方案似乎是将 Python 重写为 JavaScript,我自然会犹豫不决。

【问题讨论】:

  • 您需要向我们提供有关 webapp 的更多信息。在标题中你说 Node Webapp,但你的答案正文是 JS/Jquery。如果 Web 应用程序是单页应用程序,您可以使用运行 python 脚本的同一服务器来提供所有相关文件。

标签: javascript python jquery http flask


【解决方案1】:

您可以使用 flask-restful 扩展创建一个仅用作 Node.js Web 应用的 API 的 Flask 应用。链接到用户指南here

您可能会遇到跨域资源共享 (CORS) 的问题,因此您可能还需要 pip 安装 flask-cors 扩展。链接here

以下是应该帮助您入门的基本设置:

from flask import Flask
from flask_restful import Api, Resource, reqparse
from flask_cors import CORS
from flask_restful import Resource

# Import your python module containing the script
import your_python_scripts_module as scripts

app = Flask(__name__)
api = Api(app)
CORS(app, origins=['address of your node app'])
parser = reqparse.RequestParser()
parser.add_argument('text')

class YourClass(Resource):
    def post(self):
        args = parser.parse_args()
        # Invoke your text processing script here
        processed_text = scripts.text_processor(args['text'])
        response = {'data': processed_text}
        return response, 200

# This is where the routing is specified
api.add_resource(YourClass, '/your_api_endpoint')

if "__name__" == "__main__":
    app.run(host='address_of_flask_app')

关于您关于启动此服务器并从 Node 应用程序按需关闭它的问题,我无法帮助您(目前)。我没有这方面的经验。

上面的设置是一个简单的烧瓶模块。您可以使用指南here 将您的应用设置为一个包。

祝你好运!

【讨论】:

    猜你喜欢
    • 2011-02-11
    • 2021-04-30
    • 1970-01-01
    • 2019-11-28
    • 2011-10-05
    • 1970-01-01
    • 2011-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多