Запуск команды с браузером - PullRequest
       11

Запуск команды с браузером

0 голосов
/ 13 октября 2011

Я хочу иметь «панель управления» на веб-сайте, и когда я нажимаю кнопку, я хочу, чтобы она запускала команду на сервере (моем компьютере).Панель предназначена для запуска различных скриптов Python, которые я написал (по одному скрипту для каждой кнопки), и я хочу запустить панель на моем Mac, моем iPod touch и моем wii.Лучший способ увидеть это - это веб-сайт, так как все они имеют браузеры.Есть ли JavaScript или что-то для запуска команды на моем компьютере при каждом нажатии кнопки?

РЕДАКТИРОВАТЬ: я слышал, что AJAX может работать для серверных вещей, как это, но я не знаю, как это сделать.Есть ли что-то вроде системного блока или что-то, что я могу использовать?

Ответы [ 3 ]

0 голосов
/ 13 октября 2011

На стороне клиента (в браузере) вы можете сделать это самым простым способом. Просто HTML-форма. javascript сделает его более подходящим для проверки и выполнения вызовов ajax, поэтому страница не должна обновляться. Но ваше основное внимание обращено на сервер. Вы можете получить запрос формы на выбранном вами языке. Если вы уже используете Python, вы можете написать супер быстрый скрипт CGI Python. Посмотрите на модуль CGI для Python. Вам нужно будет поместить это на сервер apache на osx, если именно там вы будете его размещать. К сожалению, ваш вопрос о том, как именно его написать, выходит за рамки простого ответа. Но Google для того, чтобы написать и HTML-форму, или посмотрите на jquery, чтобы создать быструю форму, которая может легко делать вызовы AJAX. Затем найдите, как использовать модуль Python CGI и получать запросы POST.

0 голосов
/ 13 октября 2011

Javascript в основном предназначен для работы в браузере (обычно для того, чтобы сделать что-то приятное для конечного пользователя).То, что вы хотите (как уже сказали другие), - это способ связать действие формы HTML с действием на серверной части веб-сервера.И это именно то, для чего CGI (как указал РобГ).Альтернативой CGI, которая довольно популярна среди пользователей Apache, является mod_python - разница в основном заключается в том, выполняется ли «внутренняя» операция как автономный процесс (CGI) или внутри процесса веб-сервера (mod_python), но для большинства основных приложений на стороне серверасценарии не должны заботиться.А если вы находитесь в среде общего хостинга, у вас может не быть выбора - попросите своего системного администратора (или прочитайте документацию по вашему хостингу) узнать, как лучше всего запустить CGI-скрипты в этом случае.

Предупреждения:

  1. Вам, вероятно, понадобится достаточно повышенный доступ и опыт администратора веб-сервера, чтобы все было настроено так, как вы хотите.По крайней мере, вам нужно будет иметь возможность (как с точки зрения разрешений, так и технического понимания) просматривать журналы вашего веб-сервера, редактировать конфигурации вашего веб-сервера и возвращать (перезапускать) вашу службу http.

  2. Какие бы операции «бэкэнд» вы не выполняли, они будут выполняться с разрешениями / привилегиями веб-сервера, которые могут не совпадать с разрешениями / привилегиями учетной записи пользователя, которую вы обычно используете для выполнения этих операций.Существуют различные способы решения этой проблемы (с использованием пользовательских демонов и / или операций sudo), но вам действительно необходимо иметь четкое понимание с системным администратором веб-сервера (если веб-сервер работает в Big Bad Internet) о том, как это будет работать до вы развертываете что-либо, в противном случае вы рискуете ( особенно , если вы новичок), чтобы позволить хакерам использовать ваш "командный шлюз" для взлома веб-сервера.

Конечно, если вы просто делаете все это для удовольствия на своем персональном ноутбуке (в конце концов, по этому вопросу есть тег OSX), тогда you Сисадмин веб-сервера, и вы можете свободно взламывать и счастливо стрелять себе в ногу несколько раз, изучая все, что вам нужно знать по пути, что хорошо, если вы не в сети.В этом случае вам может пригодиться этот урок .

0 голосов
/ 13 октября 2011

Вот три варианта:

  1. Пусть каждая кнопка отправит форму с именем скрипта в скрытом поле.Сервер получит параметры формы и сможет затем выполнить ответвление для запуска соответствующего сценария.
  2. Подключите каждую кнопку к своему уникальному URL-адресу и используйте javascript для нажатия кнопки, чтобы просто установить window.location для этого нового URL,Ваш сервер получит этот URL-адрес и может решить, какой скрипт запускать, основываясь на URL-адресе.Вы можете даже использовать ссылку на веб-странице без JavaScript.
  3. Используйте Ajax для выдачи уникального URL на ваш сервер.По сути, это то же самое (с точки зрения сервера), что и предыдущие два варианта.Основное отличие заключается в том, что веб-браузер не меняет URL-адрес, на который он указывает.Вызов ajax просто указывает серверу что-то сделать и вернуть некоторые данные, с которыми веб-страница хоста может затем делать все, что захочет.
...