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/.