Python on Rails
Dans le cadre de mon travail j’ai dû me plonger dans le développement d’applications web.
Le but de cet article est donc de faire le tour des solutions disponibles.
Tour d’horizon
Je connaissais déjà des solutions basées sur PHP (en fait le quatuor LAMP) mais, comme Perl, je ne trouve pas ce langage naturel et la séparation entre logique et présentation n’y est pas claire.
M’attachant à touver une solution libre et portable, je laisse volontairement de côté les solutions basées sur IIS/Asp ou les solutions (RAD) propriétaires (CodeChargeStudio, ...).
Coté Java les solutions basées sur la platforme J2EE sont légions (Sofia, ...), mais je souhaiterais quelque chose qui ne soit pas une usine à gaz !
C’est à ce moment là que l’on m’a fait découvrir Rails :
Ruby on Rails
Vous avez sûrement entendu parler de Ruby on Rails. C’est le framework du moment, utilisant le langage Ruby, qui est en train de révolutionner la façon de faire des applications web !
"Rails is a full-stack framework for developping database-backed web applications according to the Model-View-Controller pattern".
– Serveurs web recommandés : Apache (1.3.x ou 2.x), lighttpd ou tout serveur supportant le FastCGI (ou CGI). Pour le développement un serveur, WEBrick, intégré est disponible.
– Supporte les bases de données MySQL, PostgreSQL, SQLite, Oracle, SQL Server, DB2 et Firebird/Interbase.
– Système de template HTML avec du code Embedded Ruby, similaire à la syntaxe de JSP.
– Inclut un environnement de test unitaire et fonctionnel (avec une base de données dédiée) et un environnement d’intégration.
– Maintenu par une communautée réactive et accompagné d’une documentation bien fournie.
Cependant, étant tombé sous le charme du langage Python, je me suis demandé s’il n’existait pas d’équivalent en Python (...)
Table des matières
– Tour d’horizon
- Ruby on Rails
- Zope
- TurboGears
- Django
- Subway
- Paste
- Maypole
- Catalyst
– Epreuve du feu
– Time on Rails
- Qu’est-ce que Ruby ?
- Qu’est-ce que Rails ?
- Architecture MVC
- Serveurs web supportés
- Support bases de données
- Autres modules
- Installation
- Initialisation du projet
- Configuration de la base
- Création des catégories
- Scaffold
- Amélioration du modèle
- Complétion du modèle
- Table des items
- Table des notes
- Contrôleur
- Surcharge des actions scaffold
- Liste des items
- Gabarit de l’application
- Template
- Format de la table
- Feuille de style
- Gestion des tâches
- Effacement d’un item
- Ajout d’un item
- Edition d’un item
- Les notes additionnelles
- Intégrité lors de l’effacement
- Edition d’une note
- Resultat final
– TimeGears
- TurboGears stack
- SQLObject
- Kid
- CherryPy
- MochiKit
- Autres composants
- Installation
- Quickstart
- Gestion des tâches
- Description du modèle
- Affichage d’une tâche
- Amélioration de la page
- Modification d’une tâche
- Nouvelles tâches
- Liste des tâches
- En page principale
- Toolbox
- Catégories et notes
- Gestion des catégories
- Ajout des notes
- Génération du modèle
- CatWalk
- Mise à jour des vues
- Working with Forms and Widget
- Révocation d’une tâche
- Première constatation
– Django’s Timesheet
- Caractéristiques
- Autres caractéristiques
- Installation
- Epreuve du feu
– Conclusions