Page 1 sur 1

Python : SimpleHTTPServer et BaseHTTPServer

Posté : sam. 22 juil. 2017 00:00
par golum
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.

Re: Python : SimpleHTTPServer et BaseHTTPServer

Posté : dim. 23 juil. 2017 20:43
par Manfraid
Salut,

juste une petite question comme ça as-tu un ok sur la page affichée

Re: Python : SimpleHTTPServer et BaseHTTPServer

Posté : dim. 30 juil. 2017 19:02
par golum
Salut !
Désolé pour la réponse tardive ...
Non, je n'ai même pas de 'ok'.

Re: Python : SimpleHTTPServer et BaseHTTPServer

Posté : dim. 30 juil. 2017 20:47
par Manfraid
salut, dès que j'ai un peu de temps je regarde la en ce moment je suis très peu disponible

Re: Python : SimpleHTTPServer et BaseHTTPServer

Posté : dim. 17 sept. 2017 12:19
par Bud Spencer
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 4779 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.