Как создать веб-интерфейс для моего сценария Python?

У меня есть компьютер в моем университетском офисе, с Ubuntu на нем, ssh и Python. Я сам подключаюсь к нему, используя ssh для запуска программ Python и просмотра вывода. Только вывод командной строки, ничего необычного.

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

Запуск программы в этом контексте означает ограниченность определенной папки myFolder и python file1.py внутри этой папки.

Установлен ли Ubuntu с установленным Apache или другим веб-сервером? Есть ли другое средство общения, которое я мог бы создать для него? Он использует Windows 7.

Конечно, вы можете установить apache и попробовать свою удачу.

Для меня следующее выглядит проще:

  • (необязательно) создать учетную запись пользователя для него на университетском компьютере. Это «отделить» его от ваших файлов. Это не является строго необходимым, но может быть хорошей идеей.
  • Установите шпатлевку на машину вашего друга Windows 7.
  • Создайте сеанс шпаклевки (как описано здесь ) и поместите его как значок на рабочий стол (или любое другое удобное место). Убедитесь, что вы также настраиваете имя пользователя и пароль. (Необычной альтернативой могло бы быть использование конкурса для аутентификации)

Таким образом, все, что вам нужно сделать, это нажать на значок, и ему будет представлено окно консоли, где он может напрямую использовать скрипт: python file1.py

Вы можете настроить сервер ноутбуков Ipython.

Вот инструкции.

Ноутбуки должны быть относительно просты в использовании (для некоторых приложений даже лучше, чем интерфейс терминала). Кроме того, вам не нужно устанавливать SSH-клиент на компьютер вашего друга или изобретать собственный безопасный протокол.

Если вы уже кодируете в Python, вы можете написать веб-интерфейс для своей программы, используя модуль http.server в Python 3 или BaseHTTPServer в Python 2. Ваша программа затем выдаст свой вывод непосредственно через HTTP в удаленный браузер , Сведения о том, как это сделать, выходят за рамки этого сайта, но в зависимости от вашей программы это может быть менее 10 строк кода.

Имейте в виду, что, выполнив это, вы потеряете все возможности аутентификации и авторизации SSH. Другими словами, этот метод не позволяет серверу гарантировать, что вы или ваш коллега тот, кто обращается к странице. Если кто-либо еще обнаружит правильный URL-адрес, они могут запускать вашу программу, возможно, много раз подряд; они могут разрушить его; они могут попытаться взломать его; и т. д. Но если эти риски приемлемы для вас, для простоты, вероятно, сложно обыграть чистый Python.

Конечно, можно выполнить аутентификацию и авторизацию через HTTPS, но тогда это уже не так просто.

Ubuntu имеет пакет, настроенный и предварительно настроенный для Ubuntu, который включает apache и mysql, которые вы можете установить с помощью sudo apt-get install lamp-server^ . Если вы установите это, вам нужно будет закодировать программное обеспечение, чтобы делать то, что вы хотите сделать; как webservice, где он входит в ссылку, а затем видит вывод python внутри своего окна браузера. Я считаю это излишним; если вы не ожидаете большего с ним.

Но не будет ли проще создать сценарий на машине Windows, который сделает ssh, выполнение на вашем сервере и загрузить выход, чтобы он мог его увидеть? Мне кажется тривиальным (хорошо, я делаю это все время, но не использую Windows для этого;)).