Python : SimpleHTTPServer et BaseHTTPServer

Python est le langage de prédilection du Raspberry Pi

Modérateurs : Francois, Manfraid

golum
Messages : 34
Enregistré le : mer. 10 août 2016 01:11

Python : SimpleHTTPServer et BaseHTTPServer

Messagepar golum » sam. 22 juil. 2017 00:00

Salut à tous !
Sur mon RPI3, je souhaite utiliser le fameux 'SimpleHTTPServer' de Python mais j'ai quelques soucis pour ce que je veux faire.
J'ai testé la commande

Code : Tout sélectionner

python -m SimpleHTTPServer 8000

avec un script index.html à l'endroit où je lançais la commande.

Sur mon pc distant, j'ai accédé à mon RPI3 sur le port 8000 par : <IP RPI3>:8000
et là, ma page HTML s'affichait bien.
Jusqu'ici, tout va bien.

Par la suite, j'ai voulu utiliser BaseHTTPServer pour mes besoins.
Voici un script python (test.py) assez simple pour ce forum...

Code : Tout sélectionner

#! /usr/bin/python
import BaseHTTPServer
from SimpleHTTPServer import SimpleHTTPRequestHandler

class RobotHandler(SimpleHTTPRequestHandler):

        def do_GET(self):
                self.send_response(200,'OK')
                print "ok sur " + self.path

print('http server is starting...')
HandlerClass = RobotHandler
ServerClass=BaseHTTPServer.HTTPServer
Protocol="HTTP/1.0"
server_address= ("", 8000)
HandlerClass.protocol_version = Protocol
httpd = ServerClass(server_address, HandlerClass)
infos_serveur = httpd.socket.getsockname()
print "Ready on address ", infos_serveur[0], " - port", infos_serveur[1]
httpd.serve_forever()


Je lance le script par

Code : Tout sélectionner

sudo python test.py


Et voici ma page index.html placé dans le même répertoire que test.py

Code : Tout sélectionner

<html>
<body>
Hello
</body>
</html>


A partir de la page web de mon laptop <IP RPI3>:8000, je vois bien l'affichage du print (ok sur ...) mais ma page index.html ne s'affiche pas du tout.

Je crois que j'ai manqué quelque chose...

Est-ce quelqu'un a une idée sur ce qui ne va pas ?

Merci d'avance.

Avatar de l’utilisateur
Manfraid
Modérateur
Messages : 1268
Enregistré le : ven. 3 oct. 2014 14:50
Contact :

Re: Python : SimpleHTTPServer et BaseHTTPServer

Messagepar Manfraid » dim. 23 juil. 2017 20:43

Salut,

juste une petite question comme ça as-tu un ok sur la page affichée
NAS : DIY OS Debian: DD250Go + 3x2To
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.

golum
Messages : 34
Enregistré le : mer. 10 août 2016 01:11

Re: Python : SimpleHTTPServer et BaseHTTPServer

Messagepar golum » dim. 30 juil. 2017 19:02

Salut !
Désolé pour la réponse tardive ...
Non, je n'ai même pas de 'ok'.

Avatar de l’utilisateur
Manfraid
Modérateur
Messages : 1268
Enregistré le : ven. 3 oct. 2014 14:50
Contact :

Re: Python : SimpleHTTPServer et BaseHTTPServer

Messagepar Manfraid » dim. 30 juil. 2017 20:47

salut, dès que j'ai un peu de temps je regarde la en ce moment je suis très peu disponible
NAS : DIY OS Debian: DD250Go + 3x2To
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.

Bud Spencer
Raspinaute
Messages : 296
Enregistré le : lun. 15 août 2016 21:38

Re: Python : SimpleHTTPServer et BaseHTTPServer

Messagepar Bud Spencer » dim. 17 sept. 2017 12:19

Je suis tombé par hasard sur cette demande (faite très certainement par le même PO) sur un autre forum et je me suis dit que j’avais déjà vu ça quelques part …

Etonnant que personne n’ai fait de proposition pour une question aussi simple sur un forum ou la notion de programmation est quasiment dédié au langage python. Même pour moi qui ne pratique plus trop ce langage depuis très longtemps et qui ne l’affectionne pas particulièrement, ça m’a pris tout au plus un petit ¼ d’heure pour écrire un exemple fonctionnel.

Voilà donc un petit bout de code python 3 qui permet de créer un serveur de page web tout simple.
simplepyweb.png
simplepyweb.png (35.57 Kio) Vu 139 fois


Il renvoi simplement la page http://adresseserveur:port/page.html passée en paramètre. Si il ni a pas de page dans l’url (http://adresseserveur:port), il renvois par défaut la page index.html. J’ai fait simple et les fichiers html doivent se trouver dans le dir du script .py mais c’est facilement modifiable pour définir un répertoire d’emplacement spécifique.

J’attire votre attention sur le fait que ces type de serveur web sont très simpliste. Il ne font que distribuer des fichiers html qui n’ont aucun dynamisme. Si on veut par exemple afficher le contenu d’une variable issue du script python, il faut le faire en générant la page depuis ce script ou alors on a tout intérêt à utiliser un frmk qui permet de faire le rendering en utilisant des templates html.


Retourner vers « Python »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité