source : Linux Magazine

On peut créer un petit serveur web en python. On utilise pour cela les modules BaseHTTPServer et SimpleHTTPServer.


import os
from BaseHTTPServer import HTTPServer
from SimpleHTTPServer import SimpleHTTPRequestHandler

os.chdir(os.path.expanduser("~/web"))

httpd = HTTPServer(('', 8080), SimpleHTTPRequestHandler)
httpd.serve_forever()

La classe HTTPServer est instanciée avec 2 paramètres :

  • le premier indique sous forme d’un tuple sur quelle adresse et quel port le serveur doit écouter. Ici la chaîne est vide ce qui signifie que l’on écoute sur toutes les adresses.
  • Le second est une classe qui sera instanciée avec 3 paramètres pour chaque requête et dont le rôle sera de taiter la requête en question.

Une fois le serveur web instancié, on lui demande répondre aux requêtes, c’est le rôle de la dernière ligne.

La classe SimpleHTTPRequestHandler ne permet pas de choisir le répertoire qui sera servi, c’est pourquoi on change de répertoire avant de servir les requêtes avec cette ligne :

os.chdir(os.path.expanduser("~/supersite"))

C’est ici le répertoire supersite de votre répertoire personnel qui est utilisé.

Il faut rendre le script executable :

chmod +x serveurWeb.py

Puis le lancer :

./serveurWeb.py

Avec un navigateur, il suffit de se rendre à l’adresse http://localhost:8080 pour obtenir le contenu du répertoire supersite de votre répertoire personnel.

Par contre, ce n’est pas le serveur du siècle, il n’accepte qu’une seule requête à la fois.