mercredi 2 juillet 2014

serveur minimaliste en python

Voici en quelques lignes la création d'un serveur de page web en python permettant la commande de l'allumage d'une lampe. Côté matériel, le raspberry pi est connecté au module grovepi sur lequel est branché un module relais sur l'entrée n°7. Côté logiciel, on utilise le module flask en python.

Voici le code:

from flask import Flask, request
import grovepi
#configuration de la pin 7 en sortie
relay = 7
grovepi.pinMode(relay, "OUTPUT")
#instanciation de l'objet app, le paramètre __name__ vaut __main__
app = Flask(__name__)
#la fonction accueil est précédée de @app.route qui prend en paramètre la route par laquelle la fonction sera #accessible. On va détecter la méthode http utilisée (get ou post) lors de l'appel à cette page.
@app.route("/", methods=['GET', 'POST'])
def accueil():
    #définition du message à afficher sur le bouton
    message = ["Eteint", "Allume"]
    #lecture de l'état du relais
    d = grovepi.digitalRead(relay)
    if request.method == 'POST':
        #lors de l'appui sur le bouton on envoie une requête post, on inverse l'état de la lampe.
        grovepi.digitalWrite(relay, not d)
    else:
        #cela sert à afficher correctement le message du bouton lors du premier affichage
        d = not d
    #on renvoie un petit code html constitué d'un seul bouton dont le message varie en fonction de l'état de la       #lampe
    return '<form action="" method="post"><input type="submit" value={} /></form>'.format(message[d])
#on lance l'application en précisant l'adresse ip du raspberry et le port
if __name__=="__main__":
   app.run(host='192.168.1.10', port=5000, debug=True)



Aucun commentaire:

Enregistrer un commentaire