Приложение Python, связывающееся с веб-сервером?Идеи? - PullRequest
2 голосов
/ 02 ноября 2011

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

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

  • Персональный сайт размещен на хостинге
  • Сайт использует HTML, PHP, MySQL, Python и JavaScript, большинство всего написано мной с нуля
  • Приложение, написанное на Python, будет запущено на ПК в моем доме и будет взаимодействовать с платой Arduino
  • Приложение будет получать команды из Интернета для управления активацией через Arduino и передавать данные датчика обратно на сайт (например, температуру)
  • Нужно, чтобы связь была двунаправленной, быстрой и безопасной
  • Защита соединения между сайтом и приложением Python была бы наиболее идеальной
  • Я не собираюсь подключаться к приложению Python напрямую, веб-сервер должен служить «посредником»

До сих пор я рассматривал формы HTTP Post и HTML, используя сокеты (приложение Python работало бы как веб-сервер), бот IRC и чтение / запись в текстовый файл, хранящийся на веб-сервере.

Я также надеялся найти способ связи с приложением Python без необходимости обновления веб-страницы, возможно, с помощью AJAX или JavaScipt? Может быть с Flash?

Есть что-то, чего я не рассматриваю? Я чувствую, что что-то упустил. Заранее спасибо за совет!

1 Ответ

2 голосов
/ 02 ноября 2011

Просто размышляю вслух о том, как бы я начал с этого.Во-первых, что касается самого веб-сайта, вы можете просто использовать то, что проще для вас или для среды, в которой вы находитесь. Например, базовая страница PHP будет работать нормально, но если вы также можете запустить сайт на Python,Я бы предпочел использовать один и тот же язык повсюду.

Тем не менее, я не уверен, зачем вам нужен хостинг-сайт?Учитывая, что вы уже вынуждены иметь дома для доступа внешний компьютер для общения, почему бы не запустить веб-сервер на этом напрямую (Apache, Nginx или даже что-то вроде CherryPy должно делать)?Затем этот веб-сервер может взаимодействовать с процессом python, который выполняется для управления вашим Arduino (например, с помощью Python xmlrpclib).Если вы будете управлять вещами через хостинговую компанию, вам все равно понадобится какой-то процесс, который сможет безопасно обрабатывать внешние запросы ... что-то, с чем веб-сервер вполне справляется.Просто запустить его самостоятельно дает вам всю свободу, которую вы хотите, и упростить вещи, уменьшив количество компонентов в вашем решении.

Обновления на вашем сайте я бы оставил довольно простыми: команды, которые вы хотите запускать, могут бытьобрабатывается в обработчиках запросов веб-сервера, просто вызывая соответствующие (xmlrpclib) вызовы.Динамическое обновление страницы лучше всего делать с помощью некоторых вызовов AJAX, которые я считаю.Исходя из вашей истории, эти обновления легко помещаются в объект JSON, подходящий для периодического обновления только соответствующих сегментов вашей страницы.

...