Liste des articles de la catégorie « Python ».

Django : packager un projet

Dans ce billet, je vais décrire une méthode pour packager un projet Django avec distribute, le but étant d'avoir un joli tarball qu'on peut ensuite uploader sur le CheeseShop ou installer directement dans un virtualenv.

Un peu de vocabulaire pour bien commencer, dans le monde de Django il faut bien faire la différence entre une application et un projet :

  • Une application est un ensemble de fonctionnalités ajoutées à Django.
  • Un projet est une instance de Django. Un projet va utiliser plusieurs applications (listées dans INSTALLED_APPS).

Nous allons voir comment packager un projet Django et non une application. Comme je n'ai trouvé pratiquement aucune ressource sur ce sujet sur le web, je me permets de partager ma technique, ça intéressera peut-être quelques personnes :)

Bon, maintenant que tout le monde sait de quoi on va parler, allons-y !


Flask : déployer une application avec Fabric

Toujours dans la série d'articles dédiées au framework Flask, voici le cinquième dans lequel nous allons voir comment utiliser Fabric pour automatiser le déploiement d'une application.

Le but est d'installer une application, et toutes ses dépendances, sur un ensemble de serveurs en une seule commande. Une mise en production d'une application est toujours une opération plus ou moins risquée, alors autant mettre toutes les chances de son côté et automatiser cette tâche au maximum. Et c'est là que Fabric intervient.

Fabric est un peu un équivalent d'un Makefile (Fabric utilise un fichier nommé fabfile.py, mais orienté Python et en simplifiant les échanges avec les serveurs distants. On peut ainsi facilement copier des fichiers et lancer des commandes directement sur les serveurs, le tout de manière sécurisée à travers SSH.


Déployer une application WSGI avec Nginx, Gunicorn et supervisor

Nous sommes arrivés au quatrième article de la série dédiée au framework Flask, et pour changer on va mettre de côté nos talents de développeur pour prendre le rôle de l'admin sys et s'intéresser au déploiement d'une application WSGI. Bien que les précédents articles soient dédiés à Flask, celui-ci sera plus généraliste et sera valable pour toutes vos applications WSGI. Alors si vous n'utilisez pas Flask, ne partez pas ! La suite pourrait vous intéresser.


Flask : packager une application

Troisième article de la série dédiée au framework Flask, cette fois-ci nous allons voir comment packager une application en utilisant distribute. Distribute est une bibliothèque Python permettant de packager une application puis d'installer facilement le package créé. Le but étant de pouvoir distribuer une application développée avec Flask et de permettre son installation le plus facilement possible.

Je ne vous apprends rien en vous disant que l'adoption d'une application se fait, en partie, en fonction de sa facilité d'installation. Bien sûr, c'est loin d'être le seul critère, mais généralement l'installation est le premier contact de l'utilisateur avec l'appli, et si on ne veut pas le faire fuir tout de suite, il est préférable que cette étape se passe le mieux possible. Et comme on est tous des vieux qui trainons nos vielles habitudes, le mieux est encore d'utiliser des outils standards et biens connus de tous.


Flask : les bases

Souvenez-vous, dans le premier article nous avions vu comment démarrer un projet avec Flask. Nous avons créé un projet vide qui ne fait qu'afficher une erreur 404. Pas super intéressant, mais c'est déjà pas mal. Dans ce deuxième article de la série, je vais vous montrer rapidement les bases de Flask, ce qu'il faut connaitre au minimum pour se lancer. Et pour cela, rien de mieux que développer une application toute bête : une TODO list.


Flask : démarrer un nouveau projet

Si vous faites un peu de développement, vous devez savoir que démarrer un projet est toujours un peu pénible. On se pose pleins de questions sur les meilleurs choix à prendre : comment organiser son code, monter un environnement de développement, packager son application pour la partager avec la communauté, déployer efficacement en production, etc...

Bref, pas toujours facile d'y répondre quand on débarque sur un nouveau framework ou un nouveau langage. Du coup, je vais tenter de partager avec vous quelques conseils et astuces autour du framework Flask au travers de plusieurs articles. Je ne prétends pas avoir les meilleures idées ni les meilleures méthodes, mais j'ai eu l'occasion de les tester et de les améliorer avec les quelques projets réalisés ces derniers mois, et je m'en suis toujours bien sorti (ou pas trop mal en tout cas :p).