Bouton html lançant un script python

Bonjour, je suis à la recherche d’un exemple concret d’une page html avec un bouton permettant de lancer un script python (.py) sur mon raspberry. Mon script python est fonctionnel mais le passage du bouton de la page web pas :frowning:
Quelqu’un pourrait-il m’aider sur ce point avec un exemple bien concret de page html ?
Merci d’avance et bon weekend

Bonjour,

Je crois que c’est pas si simple, il me semble que le html seul ne permette pas de lancer un script Python directement. Il faut un interpréteur en plus comme cgi-bin, php ou python lui même, on appelle cela un framework.
Quel serveur web fourni les pages html statiques actuellement (Apache, ngnix, lighttpd …) ?
Est-il configuré pour fonctionner avec les scripts Python (mod_python ou cgi) ?

Sinon, il existe des paquets python tout compris sous Python et « assez » facile à utiliser, rechercher du coté de « Python micro framework », flask ou bottle sont peut être les plus documentés et simples.

Bref, y a un foultitude de solutions pour juste lancer une action.
Désolé mais perso, un exemple bien concret je sais pas faire…

Bonne recherches.

A+

Bonjour, merci déjà pour l’information. je vais chercher dans ce sens. bon weekend à vous

Salut,
Html ne pourra pas faire ça lui même. Avec un peu d’Ajax et de php ce sera possible. Si j’ai le temps je reviendrai avec un exemple, mais dans le principe :
Un appui sur le bouton lance un appel AJAX à une seconde page web en PHP (ou autre), qui elle lancera le script python. Pour finir, une réponse vers ta page HTML pour éventuellement mettre à jour du contenu

Flask est vraiment simple à mettre en œuvre, et si ton script est déjà en python il s’intègrera facilement

merci à tous, je continue de creuser de mon côté pour y arriver

Salut, si t’as réussi a trouver peux tu partager ça ? ça m’intéresse merci.

TweakBox word counter Tutuapp

Bonjour,

voici :

	<form method="get" action="boutons.php">
            <input type="submit" value="ON" name="on">
            <input type="submit" value="OFF" name="off">
            <input type="submit" value="REBOOT" name="reboot">
            </form>
            </p>

            <?php
                    if(isset($_GET['on'])){
                            exec('sudo /usr/bin/python  /home/pi/Desktop/script1.py');
                    }
                    
                    else if(isset($_GET['off'])){
                            exec('sudo /usr/bin/python  /home/pi/Desktop/script2.py');
                   }
            
                    else if(isset($_GET['reboot'])){
                            exec('sudo /sbin/reboot');
                            echo "Reboot initiated...";
                    }
            ?>
            
  </body>
1 « J'aime »

Bonjour,

Si ton script python commence par la ligne:
#!/usr/bin/env python
et que tu as rendu ton script pyrhon exécutable le /usr/bin/python est inutile.
et donc la commande devient:
exec(‹ sudo /home/pi/Desktop/script1.py ›);

Même le sudo est inutile: car quand tu exécutes une requête http tu es l’ utilisateur www-data qui normalement n’ a aucun droit sudo.
tu peux exécuter ce script pour vérifier:

<?php
$commande = 'whoami';
exec ($commande,$reponse);
print_r ($reponse);
?>

Merci, c’est fonctionnel :slight_smile: