Structure de projet pour une application Python

Vaibhav Vaibhav 14 avril 2022
  1. Structure de projet pour une application Python
  2. Un exemple
Structure de projet pour une application Python

Lorsque vous travaillez sur des applications du monde réel, la taille de la base de code peut augmenter considérablement. En règle générale, il n’est pas recommandé de programmer des programmes monolithiques ou de mettre tout le code de l’application dans un seul fichier. La raison derrière cela est qu’un programme monolithique peut créer des bogues plus inattendus. Cela devient ingérable et illisible à mesure que la taille du programme augmente et ne favorise pas la collaboration.

En raison de tels problèmes, il est recommandé de diviser l’application en segments plus petits ou en microservices qui effectuent la tâche spécifiée indépendamment des autres services. Une telle configuration favorise non seulement une gestion facile et meilleure, mais également une lisibilité et une productivité. Cet article expliquera comment nous devrions généralement structurer nos applications python pour une meilleure gestion, lisibilité et productivité.

Structure de projet pour une application Python

L’idée est de diviser le programme en composants plus petits ou microservices. Il s’agit essentiellement de répertoires contenant des fichiers Python qui n’exécutent que la tâche qui leur est attribuée. Il s’agit généralement de fichiers autonomes, indépendants des autres services. De cette façon, il est facile de supprimer ou d’ajouter un service.

Notez que certains des répertoires ou segments mentionnés peuvent s’appliquer ou non à toutes les applications dans le monde, car certaines applications sont simples et ne nécessitent pas beaucoup de tests et de gestion. Dans le même temps, certains sont assez longs et robustes et nécessitent une attention et une gestion constantes.

Ces répertoires et fichiers doivent être créés dans un dossier de projet parent vide.

  1. LICENCE : ce fichier contient des informations juridiques sur les directives d’utilisation de l’application et les détails de distribution de l’application.
  2. README.md : ce fichier de démarques contient une brève description de l’application, de ses fichiers, des directives pour configurer l’application et l’exécuter, des directives pour la contribution, si l’application est open-source, etc.
  3. setup.py ou run.py : ce fichier est le point d’entrée de toute application Python. Cela signifie que chaque fois que nous souhaitons exécuter une application Python en suivant une structure de projet similaire, nous devons exécuter ce fichier simplement.
  4. env ou environment : Il s’agit de l’environnement virtuel Python de l’application.
  5. requirements.txt : Ce fichier texte contient des informations sur les dépendances de l’application Python.
  6. /<sub-application> : Ce dossier contient une sous-application autonome ou un microservice. Ces dossiers doivent avoir un __init__.py ce qui en fait des modules Python. Nous pouvons trouver de tels dossiers dans les applications Django et Flask sous la forme d’applications et de plans, respectivement. Notez que ces mini-applications ou microservices étant indépendants des autres applications de ce type, ils peuvent avoir leurs propres dossiers /tests, /static, /templates et les fichiers models.py et forms.py.
  7. /docs : Ce dossier contient la documentation de l’application Python. La documentation doit généralement être solide et complète afin que l’utilisateur final puisse comprendre l’application sans aucun problème.
  8. /tests : Ce dossier contient tous les tests de l’application. Le test étant une étape essentielle avant de pousser une application en production, elle doit avoir son répertoire dédié. Le nombre de tests peut augmenter considérablement lorsque l’application ou les fonctionnalités se développent.
  9. /static : Ce dossier contient tous les fichiers statiques de l’application, tels que les images, les vidéos, les logos et les icônes. Si le projet est une application web, le dossier static contiendra également des fichiers CSS et JavaScript. On peut trouver ce dossier dans les applications Django et Flask.
  10. /templates : Ce dossier contient tous les modèles HTML utilisés par l’application Python. En règle générale, ce dossier concerne les applications Web Python, car le Web nécessite du HTML. Encore une fois, nous pouvons trouver ce dossier dans les applications Django et Flask.
  11. models.py : ce fichier contient le code Python pour les modèles de base de données. Les classes Python représentant les modèles de base de données sont définies dans ce fichier lors de l’utilisation d’un ORM ou d’un mappage relationnel objet.
  12. database.db : ce fichier est la base de données utilisée par l’application Python. Ce fichier n’est nécessaire ou créé que lorsque l’application utilise une simple base de données basée sur des fichiers telle que SQLite3.

Un exemple

Supposons que nous travaillions sur un site Web de blogs personnels. Ensuite, la structure du projet d’une telle application ressemblera à ceci.

blog/
|-- LISCENSE
|-- README.md
|-- run.py
|-- models.py
|-- database.d
|-- environment/
    |-- * files *
|-- requirements.txt
|-- users/
    |-- __init__.py
    |-- forms.py
    |-- routes.py
    |-- * files *
|-- blogs/
    |-- __init__.py
    |-- forms.py
    |-- routes.py
    |-- * files *
|-- docs/
    |-- * files *
|-- tests/
	|--	users/
    	|-- * files *
    |-- blogs
	    |-- * files *
|-- static/
    |-- users
	    |-- * files *
    |-- blogs
	    |-- * files *
|-- templates/
    |-- users
	    |-- * files *
    |-- blogs
	    |-- * files *
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.