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

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

Итак, буду ли я запускать сервер Flask, когда пользователь отправляет некоторый текст, запускает скрипт Python, а затем останавливает сервер Flask? Как бы я это сделал? Это приложение JS / jQuery.

Другое решение похоже на переписывание Python на JavaScript, что, естественно, я не решаюсь делать.

Вам необходимо предоставить нам дополнительную информацию о веб-приложении. В заголовке вы говорите Node Webapp, но в теле ответа вы помещаете JS / JQuery. Если веб-приложение является одностраничным приложением, вы можете обслуживать все связанные файлы, используя тот же сервер, на котором выполняется ваш скрипт python.

miso 04.09.2018 10:23
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
1
1 098
1

Ответы 1

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

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

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

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

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

Удачи!

Другие вопросы по теме