Задать вопрос
@Stifler33

Как построить обмен данными между js и программой на python?

Есть некая программа на python которая общается с внешним устройством и получает от нее некие данные в виде массива байтов. Эта программа также управляет этим устройством. И также она обрабатывает данные и выдает нужные данные на сайт. На сайте должна отображаться данная информация. И также через сайт должно осуществляться управление внешним устройством. Сайт скорее всего будет на jango. И все это дело должно работать на raspberry pi.
Вопрос в том как осуществлять обмен данными между jango(или js) и программой. То есть при нажатии кнопки на сайте, в нашей программе должны срабатывать определенные алгоритмы. Если внешнее устройство получило какие то данные то они должны отобразиться на сайте. Я сначала думал реализовать это дело через shared memory. Со стороны python это модуль multiprocessing. А вот со стороны сайта я не знаю как это работает и возможно ли вообще.
  • Вопрос задан
  • 543 просмотра
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 5
ThunderCat
@ThunderCat
{PHP, MySql, HTML, JS, CSS} developer
64d0c778e42bb734643045.jpeg
Ответ написан
Комментировать
Mike_Ro
@Mike_Ro
Python, JS, WordPress, SEO, Bots, Adversting
Как построить обмен данными между js и программой на python?

- "некая программа на python" > api django > bd (если нужно хранить то, что возвращает "некая программа").
- page (html + js) > api django <> bd (если нужно хранение того, что шлет js или чтение того, что ранее туда положила "некая программа").
Ответ написан
Комментировать
w13vitaliy
@w13vitaliy
self-taught developer since 2020
Коммуникацию между "программами" можно построить множествами способами:
1. Делать переодичные запросы к API и проверять ответы
2. Реализовать постоянное подключение между js и python с помощью websocket.
3. Принимать одностронние ответы с сервера с Server Sent Events
4. ...другие протоколы обмена информацией
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
Если сай тоже на python, то можно использовать тот-же multiprocessing.

У вас сейчас есть портиворечия в описании. Вы когда описываете "есть программа которая делает то-то и вот это" вы описывайте конкретнее, что она делает УЖЕ а что вам хотелось бы. А то она одновременно и отдает данные на сайт, и оказывается, что обмена данными с сайтом еще нет, и вообще самого сайта тоже нет. А может и программы никакой нет, только задумка.

Самые распространенные способы обменяться информацией - по сети (сокеты, REST API, брокеры сообщений и т.д.) или одна программа запускает другую с аргументами, или общая БД.

Естественно кроме этих способов можно придумать еще множество, включая shared memory.
Задумайтесь еще над тем, что если однажды устройств станет несколько, а сайт останется один, то возможно стоит сразу делать обмен по сети.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы