{{tag>dev python pyramid framework}} ====== Pyramid ====== Quelques notes extraites de la documentation 1.6 du framework Pyramid. ===== Système de template ===== Pyramid a été pensé pour pourvoir être interfacé facilement avec des programmes de rendus externes ou "renderers". Des binding existent pour: * Mako * Genshi * Chameleon * Jinja2 ===== Les événements ===== Pyramid émets des messages (events) durant tout le cycle de vie de traitement de la requête. il est possible d’écouter ces événements en s'enregistrant auprès des listeners. Il est également possible d'ajouter des evenements. ===== Internationalisation ===== Pyramid fournit un système complet de gestion de l' internationalisation. ===== Cache HTTP ===== Pyramid propose un système de cache avec ses vues facilement paramétrable via les décorateurs. ===== Gestion des transaction ===== Pyramid se repose sur Zope pour la gestion des transactions. Un systeme centralisé de gestion des transactions permet d’éviter des incohérences lors de l'enregistrement des données. ===== Projet et paquetages ===== Pyramid permet de générer un projet en s'appuyant sur des structures préexistantes (scaffolds). Un projet contient 1 ou plusieurs paquets. La commande **pcreate** générera le squelette du projet. Ci dessous les structures préexistantes: ^ starter | Pas de persistance des données, mapping URL via URL dispatch | ^ zodb | persistance via ZODB et mapping via traversal | ^ alchemy | Persistance via SQLAlchemy et mapping URL via URL dispatch | Pour générer un projet nommé PyraTest en utilisant le scaffold starter: $ pcreate -s starter PyraTest Le dossier PyraTest, conteneur global est créé. Ci dessous le contenu du répertoire: . ├── pyratest ├── PyraTest.egg-info ├── CHANGES.txt ├── development.ini ├── MANIFEST.in ├── production.ini ├── README.txt ├── setup.cfg └── setup.py * Le dossier pyratest, package python. * Le fichier setup.py exécutable pour lancer le déploiement du projet, les instances du serveur web. * Les fichiers development.ini et production.ini pour paramétrer les instances de serveur. * MANIFEST.ini listing des fichiers non python à inclure lors de la distribution de l'application par setuptools. Le fichier peut être supprimé et setuptools paramétré pour distribuer les fichiers suivis par le logiciel de suivi de version (tel que git). * Le dossier static, contient les ressources statiques servies par le serveur web (fichiers css, images etc)