сеть веб-приложений: загрузка файла и изменение

#javascript

#javascript

Вопрос:

Я создаю веб-приложение, которое поддерживает модификацию файлов. Вариант использования таков:

  1. Пользователь загружает файл изображения, который, как я предполагаю, отправляется на сервер.
  2. Сервер получает изображение и, используя cv2 библиотеку, считывает изображение в numpy массив. Затем он выполняет некоторые вычисления в numpy массиве, и будет возвращен результат, например, среднее значение кортежа RGB, где берется среднее значение по каждому цветовому каналу. (Точное вычисление произвольно — дело в том, что выполняется некоторая логика Python.)
  3. Сервер возвращает пользователю кортеж RGB.

Я новичок в этом, так что это мое понимание на высоком уровне, но у меня мало идей относительно того, как именно реализовать каждый шаг. (Честно говоря, я понимаю «сервер» только как «отдельную машину где-то там, которая служит центральной командой, с которой могут взаимодействовать клиентские машины, такие как мой ноутбук»). Я нашел кое-какие обрывки:

  • Загрузка изображений с помощью jQuery
  • пакеты, такие как AJAX или AXIOS, которые выполняют маршрутизацию, запросы GET / POST и т.д.
  • Что-то, называемое веб-сервером Apache, которое очень часто появляется, когда я гуглю «запуск скриптов Python на сервере».

Я знаком с интерфейсными сценариями (HTML / CSS / JS) и сценариями на Python, но не с сетевыми проблемами (передача файла или результатов / объектов JS между клиентом и сервером, веб-хостинг, отличный от размещения простых статических веб-сайтов, таких как страницы Github), поэтому я даже не уверен, какие термины искать.

Комментарии:

1. Вы находитесь в правильном направлении. вы просто используете jquery ajax (из вашего примера) для отправки файла на сервер (Python / PHP / JAVA). и вы можете просто выполнить вычисление из этого файла, а затем отправить ответ с результатом в виде данных JSON. Вот и все.

2. похоже, вы прекрасно понимаете проблему для меня…

3. Может быть ярким примером того, как кто-то может подделать свой путь в мир разработки программного обеспечения: я действительно просто повторяю термины, которые я видел, и имею только понимание высокого уровня, без понимания практикующим (пока).

4. К сожалению, на этот вопрос вряд ли действительно будет получен тот ответ, который вы ищете. Он слишком широк и на самом деле просит людей рассказать вам, какие инструменты вы должны использовать, а не спрашивать подробности о выбранных вами инструментах. Такого рода вопросы на самом деле не подлежат ответу в этом формате сайта, поскольку это вопрос мнения о том, какие инструменты являются лучшими, и все несколько ответов могут быть одинаково правильными.

5. спросите на /r/webdev