Является ли JSON ответом на это: программа Python будет говорить, а Javascript будет слушать? - PullRequest
1 голос
/ 26 февраля 2011

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

Чтобы дать вам, ребята, общее представление о вещах, здесь я иду: ситуация такая, у меня есть 2 серверных сценария, которые я хочу запустить.

  1. a Python-программа / скрипт, который непрерывно изливает некоторые числа

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

Я изучил ответы на мои предыдущие посты и обнаружил, что то, чего я хочу достичь, более или менее выполнено json. Насколько я понимаю, json преобразует «специфичные для программы» переменные в формат, который является более «стандартным, общим или глобальным». поэтому две разные программы теперь имеют возможность «разговаривать» друг с другом, потому что теперь они говорят на одном и том же «языке».

тогда проблема в том, как мне на самом деле облегчить их общение? что такое «мобильный телефон» между этими серверными сценариями? они вообще нужны?

спасибо!

Ответы [ 5 ]

2 голосов
/ 26 февраля 2011

Если я понимаю, о чем вы спрашиваете, «мобильный телефон» - это TCP / IP. Javascript не на стороне сервера; он запускается на стороне клиента и изменяет то, что отображает браузер клиента, на основе данных json, которые он загружает с сервера - данных, которые в этом случае генерируются Python.

Этот вопрос содержит соответствующий пример, хотя и немного технический: JSON datetime между Python и JavaScript

Вот очень простое руководство, которое объясняет, как создать динамическую веб-страницу с использованием Python и Javascript. Кажется, он не использует json, но он должен познакомить вас с основами. Как только вы поймете, что там, использование json для передачи более сложных данных должно быть довольно простым.

http://kooneiform.wordpress.com/2010/02/28/python-and-ajax-for-beginners-with-webpy-and-jquery/

1 голос
/ 26 февраля 2011

Полагаю, вы имеете в виду: Python находится на веб-сервере, а Javascript работает в веб-браузере клиента.

Поскольку все браузеры разные (IE6 ужасен, Chrome великолепен), существует огромное количество способов «взломать» этот «мобильный телефон». Эти методы называются методами AJAX и COMET. Там нет ни одного "мобильного телефона", но целая куча их! Надеюсь, вы сможете найти библиотеку, чтобы выбрать правильную технику для браузера, и вам просто нужно побеспокоиться о сообщениях.

Комету сложнее сделать, но она позволяет серверу "проталкивать" сообщения клиенту.

Ajax может быть проще - вы просто периодически «вытягиваете» сообщения с сервера.

Начните с Ajax, затем посмотрите на комету, если она вам действительно нужна. Просто начните с того, что клиент (javascript) сделает запрос «GET», чтобы узнать, изменился ли номер.

0 голосов
/ 26 февраля 2011

Когда двум процессам необходимо общаться, им нужно выбрать общий / общий способ выражения вещей и протокол для обмена этими вещами.

В вашем случае, поскольку одним из процессов является браузер, протоколом выбора является http. Поэтому браузер должен выполнить http-запрос или обычный http-запрос к вашему процессу python.

Этот процесс на Python, так или иначе, должен быть доступен через http.

Существует несколько способов создания веб-сервера в Python. Вы должны прочитать эту статью: http://fragments.turtlemeat.com/pythonwebserver.php как краткий старт.

Как только вы это сделаете, ваш браузер сможет отправлять запросы HTTP GET на ваш сервер, а ваш сервер может отвечать строкой.

Эта строка может быть чем угодно. Тем не менее, если ваш ответ содержит структурированные данные, может быть хорошим началом использовать нотацию XML или нотацию json.

Json (расшифровывается как нотация объектов Javascript) очень прост в использовании в javascript, и поэтому многие люди советуют вам выбирать эту нотацию.

Надеюсь, это поможет вам

Жером Вагнер

0 голосов
/ 26 февраля 2011

Вероятно, это не тот ответ, который вы ищете, и без ссылок на ваши предыдущие посты мне не о чем продолжать, но тем не менее ...

javascript на стороне клиента.Я могу интерпретировать ваш вопрос двумя способами ...

  1. Ваш скрипт на python запущен на вашем компьютере, и вы хотите, чтобы скрипт фактически изменил ваше текущее окно браузера.

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

  2. Ваш скрипт на python запущен на сервере и в результате его запуска, вы хотите, чтобы отображение вашего сайта было изменено для просмотра лиц.

    В этом случае вы можете использовать ajax-опрос (или аналогичный) на вашем сайте.Ваш сайт опрашивает сервер с помощью ajax, вызывает метод сервера, который проверяет вывод сценария (может быть записан в файл?), И проверяет, изменился ли он.

0 голосов
/ 26 февраля 2011

Я не знаю Javascript или json, но ... если вы когда-либо видели Unix-подобную операционную систему, вы знаете о каналах.Мне нравится программа1 |программа2 |program3 ... Почему бы вам просто не соединить программы Python и Javascript с помощью каналов?Первый пишет в стандартный вывод, а следующий - из стандартный ввод.

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