Показать результат (изображение) вычислений на сайте - PullRequest
0 голосов
/ 26 марта 2020

У меня есть скрипт python, который генерирует карту высот в зависимости от параметров, которые будут заданы в формах HTML. Как отобразить полученное изображение на веб-сайте? Я предполагаю, что кнопка отправки формы поразит конечную точку с заданными параметрами, и тогда будет запущен скрипт, который вычисляет карту высот, но как мне получить полученное изображение и отобразить его на веб-сайте? Кроме того, вычисление занимает несколько секунд, поэтому я предполагаю, что мне нужен какой-то тип очереди задач, чтобы сервер не зависал между тем. Скажите мне, если я ошибаюсь.

Это немного общий вопрос, потому что я сам не знаю специфики того, что мне нужно использовать для выполнения sh этого. Я использую Flask в бэкэнде, но это фреймворк-вопрос c.

1 Ответ

1 голос
/ 27 марта 2020

Сохранить изображение в файл. Вернуть веб-страницу, которая содержит элемент. SR C должен быть URL-адресом, указывающим на файл.

Например, предположим, что вы сохраняете изображение в файл с именем «temp2.png» в подкаталоге «scratch» в вашем документе root , Тогда элементом IMG будет image.

. Если вы создадите и сохраните изображение в той же программе, которая генерирует ссылку на него, ваш сервер не вернет страницу, пока изображение не будет сохранено. , Если это займет всего несколько секунд, сервер вряд ли зависнет. Многим приложениям потребуется столько времени, чтобы рассчитать результат, поэтому люди, которые закодировали сервер, позаботятся о том, чтобы он справился с такими задержками. Я сделал это в Apache, Tomcat и GoServe (сервер OS / 2), и у меня никогда не было проблем.

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

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

Вам понадобится способ автоматического запуска его несколько раз. В Unix системах, если у вас есть доступ к оболочке, команда "cron" является одним из способов сделать это. Поиск в Google "задания cron по удалению файлов старше 1 часа на веб-сервере" находит много дискуссий о методах.

Будьте очень осторожны при кодировании любого сценария автоматического удаления c и тщательно протестируйте его, чтобы убедиться, что удаляет нужные файлы! Если вы устанавливаете период истечения в переменную, вы можете установить его, например, на 1 минуту или 5 минут при тестировании, чтобы вам не приходилось ждать целую вечность.

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

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