• Aucun résultat trouvé

Développement d'une plateforme web avec CherryPy

N/A
N/A
Protected

Academic year: 2021

Partager "Développement d'une plateforme web avec CherryPy"

Copied!
9
0
0

Texte intégral

(1)

Développement d’une

plateforme web avec CherryPy

Marie-Josée Cros

INRA Toulouse

cros@toulouse.inra.fr

(2)

Introduction

Volonté de développer une plateforme web pour proposer un environnement intégré dans lequel un biologiste pourrait lancer plusieurs programmes, explorer, éditer et exporter les résultats obtenus :

pas d’installation de logiciels à faire

puissance de la combinaison d’outils disparates

Plusieurs équipes partantes (compétences, localisations différentes), volonté d’ouverture

Après discussion et spécification de ce que l’on pourrait réaliser, il y a 1 an, des choix techniques ont été fait :

Python pour le langage de développement

CherryPy complété par Cheetah (template engine) pour le web

(3)

Pourquoi ces choix

Qualités du langage : simplicité syntaxe, interprété …

Beaucoup de bibliothèques disponibles

Impression langage de plus en plus utilisé : intérêt pour le connaître

Permettait de développer les parties web et applications dans le même langage

Simplicité, proximité avec Python

Intégration d’un serveur HTTP

Possibilité d’ajout d’un langage de rendu

Syntaxe simple, proche de Python

Possibilité de compiler les templates

Très utilisé, communauté active

(4)

CherryPy (cherrypy.org)

Framework HTTP, orienté objet, pythonic

Compatible WSGI

Peut fonctionner avec différents langages de rendu

Créé en 2002, en 2005 intégré à TurboGears, fin 2006 version 3.0, actuellement version 3.1.2

Le serveur HTTP fournit permet aux applications d'être déployées n'importe où Python est installé

Permet d’écrire des applications web de la même manière qu’une application Python classique : fait correspondre une URL et sa requête en un appel de méthode

http://host.net/echo?message="hello" -> echo(message= "hello")

Un ensemble de modules pour authentification, encoding, session

(5)

hello.py

import cherrypy class HelloWorld:

def index(self):

return ‘Hello world !’

index.exposed = True

cherrypy.quickstart(HelloWorld()) python2.5 hello.py

CherryPy - exemple

Lancement du serveur web intégré

avec mapping de ‘/’ sur HelloWorld.index() Pour que la méthode soit

appelable, il faut la publier

Configuration possible du serveur par fichier server.socket_port = 8080

(6)

 Permet de séparer le contenu de la présentation

 Exemple <html>

<head><title>$title</title></head>

<body>

<table>

#for $client in $clients <tr>

<td>$client.surname, $client.firstname</td>

<td><a href="mailto:$client.email">$client.email</a></td>

</tr>

#end for </table>

</body>

</html>

Cheetah

(7)

rnaspace.org – workflow utilisateur

B I O

L O G I S T E

P L A T E F O R M E D E C A L C U L

(8)

Conclusion

Python : gens motivés pour se mettre au langage, se prête bien à du travail collaboratif, difficulté à trouver des méthodes quand on ne sait pas dans quelle bibliothèque les chercher)

CherryPy : pour le moment on apprécie les caractéristiques pour lesquelles on l'a choisi

Des problèmes récents de gestion de mémoire vive résolus

Interrogation sur CherryPy en mode production (charge, sécurité …)

Interrogation sur la structure du logiciel, on a défini une

architecture 3-tiers en utilisant le modèle MVC pour la partie

interface (sourceforge.net/projects/rnaspace) mais un framework plus complet nous aurait peut-être aidé à la définir

(9)

Partenaires

Références

Documents relatifs

De nombreux composants graphiques (ou widgets) sont disponibles : fenêtre (classe Tk), bouton (classe Button), case à cocher (classe Checkbutton), étiquette (classe Label), zone

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des

Patient 3 : Patient de 80 ans, présentant un CBC nodulaire palpébro-jugo-nasal droit intéressant la face latérale droite du nez, de 2 cm de grand axe, ayant

[r]

Cet article présente l’approche de LibreSource, son architecture et montre son utilisation dans le cadre d’un procédé coopératif de développement logiciel.. The existing

• Si vous repérez une erreur dans le sujet, surtout ne le dites pas dans votre copie, l’auteur du sujet en serait meurtri. • Surtout pas de dessin pouvant éclairer la situation

L’équipe de direction a sans doute une idée des compétences et des capacités nécessaires pour concrétiser la stratégie de l’organisation au cours des prochaines années,

Means and standard deviation (N = 6) were calculated for the number of nuclei per surface area, the number of nuclei per fibre, the number of fibres per surface area, the number