Python-Flask: передавать данные в машинный скрипт python и возвращать результаты

Мои знания в веб-карманах довольно плохие. У меня есть модель машинного обучения в python, и она берет набор строк как результат ввода и возврата. После поиска в Интернете я столкнулся с Flask . Но я не знаю, как на самом деле создать флеш-приложение, чтобы фактически взять строку и позволить пользователю отправлять и передавать эту строку на мой компьютер, изучая скрипт python и возвращая результаты. Это все, что я до сих пор

 import threading import subprocess import os import sys from flask import Flask from flask import render_template, abort app = Flask(__name__) app.debug = True def run_script(): theproc = subprocess.Popen([sys.executable, "ML_script.py"]) theproc.communicate() if __name__ == "__main__": app.run() 

Если вы можете указать пример или предоставить решение / скелет, который будет фантастическим.

  • Функция просмотра ошибки в флажке не возвращала ответ
  • Настройка (издевательский) заголовков запросов для тестирования блока приложений Flask
  • Флажок jsonify список объектов
  • Общая папка / структура файла в приложении Flask
  • Неверная транзакция, сохраняющаяся во всех запросах
  • register_blueprint не добавляет маршрут в приложение Flask
  • Кол-во sqlalchemy много-ко-многим вставить данные
  • Легкий способ переключения между рендерингами в рамках одного и того же метода просмотра
  • Python динамически добавляет функцию
  • Python - как округлить до двух десятичных знаков
  • Как реализовать эффективный бесконечный генератор простых чисел в Python?
  • Флажок зависает при отправке почтового запроса самому себе
  • One Solution collect form web for “Python-Flask: передавать данные в машинный скрипт python и возвращать результаты”

    Вы можете использовать свои функции обучения в компьютере, как и любая другая функция Python, нет необходимости в subprocess . Настройте приложение:

     from flask import Flask from flask import render_template, abort, jsonify, request,redirect, json from my_app.machine_learning import analyzer app = Flask(__name__) app.debug = True @app.route('/') def index(): return render_template('index.html') @app.route('/learning', methods=['POST']) def learning(): data = json.loads(request.data) # data == {"userInput": "whatever text you entered"} response = analyzer(data) return jsonify(response) if __name__ == '__main__': app.run() 

    Я использовал стенд в имени для вашего модуля машинного обучения, но analyzer() должен быть функцией в этом модуле, которая вызывает все ваши другие функции, необходимые для выполнения ваших вычислений, и возвращает словарь, в котором есть ваши результаты. Так что-то вроде этого:

     def analyzer(data): vocab = build_vocab(training_data) cl = train_classifier(vocab, trianing_data) results = cl.predict(data) results = format_results_to_dict() return results 

    Шаблон довольно прост:

     <!DOCTYPE html> <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> <script src="../static/script.js"></script> </script> </head> <body> <h1>Calculation</h1> <h1>Test Page</h1> <input id="user-input" placeholder="Text to be analyzed"></input> <p id="results">Results will go here<p> <button id="submit">Submit</button> </body> </html> 

    И сценарий JS, чтобы связать все это вместе:

     $(document).ready(function(){ $("#submit").click(function(event){ var uInput = $("#user-input").val(); $.ajax({ type: "POST", url: '/learning', data: JSON.stringify({userInput: uInput}), contentType: 'application/json', success: function(response){ $("#results").text(response.results); }, }); }); }); 
    Python - лучший язык программирования в мире.