Un début de configuration pour Cherrypy

Une arborescence

L’exemple de base tient en un fichier. mais pour un site plus complet, d’autres fichiers vont venir se rajouter.
Pour cela, une arborescence est utile pour s’y retrouver.

Supposons que mon dossier principal soit « /home/dlefur/Cherrypy/ ».
Dedans se trouve mon fichier main.py, mon fichier python à exécuter.

On peut au moins commencer par trois sous-dossiers :

  • config/ : contiendra le fichier de configuration server.conf.
  • favicon/ : contiendra favicon.ico.
  • public/ :contiendra d’autres sous-dossiers :
    • css/
    • images/
    • pdf/

Le fichier server.conf

[global]
server.socket_host : "0.0.0.0"  # pour rendre le site accessible à la fois en local ou en public
server.socket_port : 2016       # le port choisi

[/]
tools.sessions.on : True
tools.staticdir.root: "/home/dlefur/Cherrypy/"

[/favicon.ico]
tools.staticfile.on : True
tools.staticfile.filename : "/home/dlefur/Cherrypy/favicon/favicon.ico"


[/style.css]
tools.staticfile.on : True
tools.staticfile.filename : "/home/dlefur/Cherrypy/static/css/style.css"

[/static]
tools.staticdir.on : True
tools.staticdir.dir : "static/"

Le css pourra être appelé par une commande :

<link rel="stylesheet" type="text/css" href="/style.css" type="text/css"></link>

Mon nouveau Hello World

import cherrypy, os

#---------------- le site
class HelloWorld :
    #--------------------- la page par defaut
    @cherrypy.expose     # pour rendre la page disponible
    def index(self): 
        return "Hello world!"

#----------------- lance le site en utilisant le fichier de configuration
configfile=os.path.join(os.path.dirname(__file__),"config/server.conf")
cherrypy.quickstart(HelloWorld(),config=configfile)

Cette fois-ci, le port a changé. C’est celui indiqué dans le fichier server.conf.
Dans le navigateur, l’adresse à utiliser sera : http://localhost:2016/.