Как запустить python скрипт из html при нажатии на кнопку?

234
09 марта 2018, 14:02

Есть простая html страница с popup'ом.
Нужно запускать python скрипт при открытии попапа (попап открывается при нажатии на кнопку).
В скрипте есть цикл и он выполняется пока не получает данные из вне и когда цикл завершается - выводится информация, эту информацию нужно выводить в попап.
Как это можно реализовать?

Answer 1

На кнопку можно повесить вызов Ajax скрипта, который пошлет запрос на сервер (там и будет этот самый код из питон скрипта) и выведет ответ сервера в попап.

$.ajax({
    type: "GET",
    url: "http://mysite.ru/script_for_popup",
    data: { 
        name: "Вася", 
        lastname: "Пупкин"
    },
    success: function(msg){
        alert( "Прибыли данные: " + msg );
    }
});

Вместо alert любой код для изменения попапа

https://jqbook.net.ru/ajax/jquery

Answer 2

В javascript-обработчике нажатия на кнопку делать ajax-запрос к python-скрипту на сервере.

var URL = 'https://api.stackexchange.com/2.2/questions/794972/answers?order=desc&sort=activity&site=ru.stackoverflow' 
 
var output = document.getElementById('output'); 
var button = document.getElementById('button'); 
 
var xhr = new XMLHttpRequest(); 
xhr.onreadystatechange = function() { 
    if (xhr.readyState != 4) return; 
 
    if (xhr.status == 200) { 
        data = JSON.parse(xhr.responseText); 
        response = ['<h4>Авторы ответов к этому вопросу</h4>']; 
        for (var x = 0; x < data.items.length; x++) { 
            response.push('<p>' + data.items[x].owner.display_name + '</p>'); 
        } 
        output.innerHTML = response.join(''); 
    } 
    else { 
        alert('Ошибка! ' + xhr.statusText); 
    } 
     
    button.innerHTML = 'Нажми меня'; 
    button.disabled = false; 
}; 
 
button.addEventListener('click', function(event) { 
    this.innerHTML = 'Загружаю...'; 
    this.disabled = true; 
     
    xhr.open('GET', URL, true); 
    xhr.send(); 
});
<div id="output"></div> 
<button id="button">Нажми меня</button>

READ ALSO
Как перенести анимацию SVG из GearGenerator на сайт?

Как перенести анимацию SVG из GearGenerator на сайт?

Подскажите пожалуйста как правильно перенести и подключить вот эту http://geargeneratorcom/#200,200,100,6,1,0,0,4,1,8,2,4,27,-90,0,0,16,4,4,27,-60,1,1,12,1,12,20,-60,2,0,60,5,12,20,0,0,0,2,-563...

220
Получение данных с html &lt;input&gt; в TypeScript

Получение данных с html <input> в TypeScript

Не могу получить значения с html

174
Можно ли оптимизировать код? [требует правки]

Можно ли оптимизировать код? [требует правки]

Приветствую, данный код можно оптимизировать?

288
HTML-CSS. Как добавить стрелку в этот код?

HTML-CSS. Как добавить стрелку в этот код?

Как добавить в span ::before, также как на скрине? У меня в футере так:

178