Как мне запустить программу на Python с веб-сервера Flask? - PullRequest
0 голосов
/ 08 апреля 2019

У меня есть программа на Python, которая позволяет пользователю выбирать точки на изображении. Точки, по которым щелкают, сохраняются в YML-файл.

В настоящее время он настроен таким образом, что при вызове программы Python с сервера она выполняет графический интерфейс Python в отдельном окне (как если бы вы выполняли его через командную строку) и пользовательский ввод берется через командную строку, которую я использовал для запуска сервера. Я бы хотел, чтобы все было внутренним. Например, все проходит через сервер, если это имеет смысл.

Как бы я поступил так? Есть ли библиотека, которая делает что-то подобное возможным? Приведенный ниже код показывает, как программа Python в настоящее время выполняется на сервере. Если вы перейдете по URL-адресу / test, он будет выполнен в этом случае.

Надеюсь, это изображение даст вам представление о том, что я пытаюсь сделать. По сути, мне нужно, чтобы изображение было открытым и взаимодействующим на сервере. Мне не нужен точный код для этого, просто объяснение того, как я должен это делать.

- project
    - data (folder that holds output information from pythonGUI.py)
    - app
        - templates
            - index.html
        - routes.py
        - models.py
        - __init__.py
    - pythonGUI.py
    - config.py
    - server.py

routes.py

from app import app
from flask import Flask, request, render_template, session
import pythonGUI

app.secret_key = app.config['SECRET_KEY']

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

@app.route('/test')
def test():
    return pythonGUI.main()

if __name__ == '__main__':
    app.run(host='0.0.0.0', port='8000', debug=True)

pythonGUI.py

from app import app
import cv2

def main():
#Some code here

if __name__ == '__main__':
    main()

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

1 Ответ

0 голосов
/ 11 апреля 2019

В данный момент я не уверен, что вам нужна библиотека изображений; Вы можете быть в порядке только с Javascript и Flask.

Вот как бы я это сделал:

Есть вопросы по получению координат с картинки с использованием Javascript. Примерно через 10 секунд поиска в Google я нашел это: получить координаты пикселей изображения относительно левого верхнего угла

Возьмите этот вывод и отправьте его на другой маршрут в flask. Примерно так:

from flask import request

def image_coordinate_processing(x,y):
    #Do stuff
    return result

@app.route('/_img_coordinates')
def _img_coordinates():
    x = int(request.args.get('x'))
    y = int(request.args.get('y'))

    result = image_coordinate_processing(x,y)

    return 'completed'

В вашем шаблоне вы отправите данные следующим образом:

{{url_for('_img_coordinates', x=x, y=y)}}

Очевидно, что это не весь код, но он должен привести вас в правильное русло.

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