Могу ли я добавить сервер Flask в существующее веб-приложение Node? - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть веб-приложение и несколько скриптов Python, которые я хотел бы запустить для некоторого введенного текста. Я оглянулся, и мне кажется, что Flask - лучшее решение для этого, но разве это не означает, что у меня будет два веб-сервера?

Так я бы запустил сервер Flask, когда пользователь отправит какой-нибудь текст, запустит скрипт Python и остановит сервер Flask? Как бы я это сделал? Приложение JS / JQuery.

Другое решение - переписать Python на JavaScript, что, естественно, я не решаюсь.

1 Ответ

0 голосов
/ 04 сентября 2018

Вы можете создать приложение Flask, которое будет служить только API для вашего веб-приложения Node.js, используя расширение flask-restful. Ссылка на инструкцию здесь .

Вы можете столкнуться с проблемами при совместном использовании ресурсов из разных источников ( CORS ), поэтому вам, вероятно, потребуется также установить расширение flask-cors. Ссылка здесь .

Ниже приведены основные настройки, с которых следует начать:

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, я не могу вам помочь (пока). У меня нет никакого опыта с этим.

Настройка выше для простого модуля колбы. Вы можете настроить свое приложение как пакет, используя руководство здесь .

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...