Introduction
Cookiecutter est un puissant outil open-source permettant d'automatiser la création de projets en fonction du langage deprogrammation souhaité. Il permet aux utilisateurs, avec une seule commande, de générer une structure de projet complète, comprenant tous les fichiers et les configurations nécessaires. Dans cet article, nous allons nous familiariser avec la configuration d'un projet Cookiecutter pour améliorer la structure des projets Django.
Développement
Cookiecutter est un framework permettant de créer rapidement des projets avec une structure de répertoire bien définie, des fichiers de configuration et des dépendances préconfigurées. Il existe un modèle populaire appelé cookiecutter-django qui fournit une structure complète pour les projets Django. Il propose de nombreuses fonctionnalités, telles que :
- Compatible avec Django 4.2 (LTS) ;
- Fonctionne avec Python 3.12 ;
- Génère des projets Django avec une couverture de test initiale de 100 % ;
- Intègre Twitter Bootstrap v5 (ou Tailwind CSS en option) ;
- Paramètres basés sur les 12 facteurs via django-environ ;
- Sécurisé par défaut (utilisation de SSL) ;
- Paramètres de développement et de production optimisés ;
- Inscription via django-allauth ;
- Livré avec un modèle utilisateur personnalisé prêt à l'emploi ;
- Configuration ASGI de base optionnelle pour Websockets ;
- Construction statique personnalisée avec Gulp ou Webpack (facultatif) ;
- Envoi d'e-mails via Anymail (par défaut avec Mailgun, ou Amazon SES pour AWS selon le fournisseur de cloud) ;
- Stockage des fichiers multimédia sur Amazon S3, Google Cloud Storage, Azur Storage, ou nginx ;
- Prise en charge de Docker via docker-compose pour le développement et la production (utilisation de Traefik avec support de LetsEncrypt) ;
- Profil pour le déploiement sur Heroku ;
- Instructions pour le déploiement sur PythonAnywhere ;
- Exécution des tests avec unittest ou pytest ;
- Version PostgreSQL personnalisable ;
- Intégration par défaut avec une pré-validation pour identifier les problèmes simples avant la soumission à la révision de code.
CREATION D’UN PROJET DJANGO AVEC COOKIECUTTER :
Dans le terminal entre les commandes suivante :
# Installez Cookiecutter via pip
pip install "cookiecutter>=1.7.0"
# Créer un nouveau projet Django
cookiecutter https://github.com/cookiecutter/cookiecutter-django
Lorsque vous lancez cette commande, Cookiecutter vous posera une série de questions pour personnaliser votre projet. Après avoir répondu à toutes les questions, vous obtiendrez une structure de projet similaire à ceci :
├── config
│ ├── settings
│ │ ├── base.py
│ │ ├── local.py
│ │ ├── production.py
│ │ └── test.py
│ ├── urls.py
│ ├── wsgi.py
│ └── asgi.py
├── <nom_du_projet>
│ ├── __init__.py
│ ├── users
│ ├── templates
│ ├── static
│ └── tests
├── manage.py
└── requirements
├── base.txt
├── local.txt
├── production.txt
└── test.txt
Quelques fichiers
- config/settings/base.py : Fichier de configuration principal.
- config/settings/local.py : Fichier pour les paramètres locaux (développement).
- config/settings/production.py : Fichier pour les paramètres de production.
- requirements/ : Dossier contenant les fichiers de dépendances pour les différents environnements (développement, production, tests).
conclusion
Cookiecutter est un outil qui rend la création de projets rapide avec une structure prête à l'emploi, tout en restant flexible et adaptable aux besoins spécifiques. Il existe également des outils similaires à Cookiecutter, tels que : PyScaffold, Django Project Templates, Slush, etc.
Source : Cookiecutter Django GitHub