Взаимодействие Python с браузером (Raspberry WebioPi)

Я использую инструмент под названием «webiopi» для управления оздоровительным устройством через Raspberry pi и релейную плату. Этот инструмент соединяет кнопки на веб-странице с помощью скрипта Python. Я могу прочитать состояние (низкий/высокий) с контактов GPIO на кнопках, которые я создал.

Я хочу показать значения из скрипта в браузере. (Например, «измеренная_температура» или «Расчетное_время»)

Есть ли способ показать вывод скрипта Python в веб-браузер?

    button = webiopi().createMacroButton("macro", "Normaal", "Prog1");
    $("#top").append(button)

<div id="content" align="center">
<td>    
  </td>
                            {{print here output from script.py}}
      <div id="top"></div>

   </div>
 </div>

person Richard de Ree    schedule 15.04.2016    source источник


Ответы (2)


Вы можете использовать PHP для вызова скрипта и вывода вывода на страницу. Вам понадобится установленный и включенный PHP, а файл должен заканчиваться на .php. Если вы знаете веб-сервер, который используете, я могу оказать вам дополнительную помощь. Также обратите внимание, что сценарий должен выводить всю информацию, которую он хочет на веб-странице, в стандартный вывод.

    button = webiopi().createMacroButton("macro", "Normaal", "Prog1");
    $("#top").append(button)

<div id="content" align="center">
<td>    
  </td>
      <?php exec("python myscript.py", $out); echo $out; ?>
      <div id="top"></div>

   </div>
 </div>
person randomdude999    schedule 15.04.2016
comment
это то, чего я совершенно не хочу. Мне уже приходится иметь дело с Javascript и Python, которые для меня совершенно новые. Я не хочу PHP, который также является новым для меня. Тем не менее, спасибо за ваше предложение - person Richard de Ree; 15.04.2016
comment
Что ж, если вы не знаете Perl, это самое простое решение. - person randomdude999; 15.04.2016

На этом форуме [форум Wpio][1]https://groups.google.com/forum/#!topic/webiopi/DreW_74gm0o

дает Питу Дудашу ответ на этот вопрос, который я копирую сюда

Да, это возможно. То, что вы хотите сделать, это добавить процедуру обратного вызова в ваш javascript. Сначала вы выполняете какое-то действие в javascript (либо нажатием кнопки, либо таймером) и вызываете макрос python. На этот раз вы указываете процедуру обратного вызова при вызове макроса. Процедура обратного вызова получает данные из макроса, а затем вы можете делать с ними все, что хотите.

Javascript:

function getPythonResponse() {
// "sendData" is the name of the macro you specify in your script.py
// "[]" is an empty list.  If you want to send data for the macro to use, you would include that here
// "handlePythonResponse" is the name of the callback routine that will execute once the python macro is finished
webiopi().callMacro("sendData", [], handlePythonResponse);

}

var handlePythonResponse = function(macro, args, response) {
// "response" is the variable that holds the data from script.py
// Now we can apply those results to the webpage by assigning the value to the "pythonResult" id.  This is the element in your HTML where you want to print the info.
$("#pythonResult").text(response);

}

Питон:

@webiopi.macro

определение отправки данных():

HTML:

<div id="content" align="center">
<td></td>

<span id="pythonResult">{{print here output from script.py}}</span>

<div id="top"></div>

person Richard de Ree    schedule 15.04.2016