Je reviens vous voir pour avoir de l'aide concernant un projet que je dois faire en classe.
Le but du projet est de pouvoir lancer via une interface html avec des boutons connecter à un serveur http des scripts pythons sur une Raspberry PI.
Le problème est que malgré tout les tutoriels sur Internet, je n'arrive pas à trouver une aide conséquente et compréhensible.
Donc j'aimerais savoir si quelqu'un saurait me renseigner sur comment lancer des scripts pythons avec un bouton html connecter à un serveur web sur une raspberry PI.
Le code de l'index.py :
# coding: utf-8
import cgi
import RPi.GPIO as GPIO
form = cgi.FieldStorage()
print("Content-type: text/html; charset=utf-8\n")
html = """<!DOCTYPE html>
<head>
</head>
<body>
<label>Choississez l'inclinaison en degre de votre Monture :</label>
<form method="post" action="
<input type="text" id="Degre" name="texte">
<button type="submit" id="button" ">validez votre choix</button>
<label name="resultat">L'angle que vous avez choisis est de x degres</label>
</body>
</html>"""
print(html)
le server.py
import http.server
texte = form.getvalue("texte")
PORT = 2003
server_address = ("", PORT)
server = http.server.HTTPServer
handler = http.server.CGIHTTPRequestHandler
handler.cgi_directories = ["/"]
print("Serveur actif sur le port :", PORT)
httpd = server(server_address, handler)
httpd.serve_forever()
Si je n'ai pas mis assez d'information, je serais prêt à vous répondre.
dans le code html de ton index, il y a un problème au niveau de la balise de form, il manque le "> en ligne 17 et il manque </form> entre la ligne 20 et 21
dans action, tu dois pouvoir indiquer le script à exécuter; dans celui-ci, il faudra récupérer la variable de l'input via
import cgi
import RPi.GPIO as GPIO
form=cgi.FieldStorage()
degre=form.getvalue('texte')
if degre!=None: # si on a bien une valeur (donc différent de None)
#le reste du script
CGI Python - lancer des scripts pythons via html
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.