# 📝 Blog Duhaz Blog personnel dĂ©veloppĂ© avec Django 5.1 LTS. ## ✹ Nouvelles FonctionnalitĂ©s (Octobre 2025) - 🔒 **SĂ©curitĂ© renforcĂ©e** : Variables d'environnement, nouvelle SECRET_KEY - 🚀 **Django 5.1 LTS** : Mise Ă  jour depuis Django 3.2 - 📩 **Gestion moderne** : Scripts d'installation automatisĂ©s - 🔧 **Code nettoyĂ©** : Suppression des mĂ©thodes dĂ©prĂ©ciĂ©es Python 2 --- ## 🚀 Installation Rapide ### PrĂ©requis - Python 3.10+ - pip ### Installation ```bash # 1. Cloner le projet (si pas dĂ©jĂ  fait) cd /Users/duhaz/projets/blog-duhaz # 2. Lancer l'installation automatique ./scripts/install.sh # 3. DĂ©marrer le serveur ./scripts/start.sh ``` Le blog sera accessible sur : **http://127.0.0.1:8000/blog/** --- ## 📋 Installation Manuelle Si vous prĂ©fĂ©rez installer manuellement : ```bash # 1. CrĂ©er l'environnement virtuel python3 -m venv venv source venv/bin/activate # 2. Installer les dĂ©pendances pip install -r requirements.txt # 3. Configurer l'environnement cp .env.example .env # Éditer .env avec vos paramĂštres # 4. Appliquer les migrations python manage.py makemigrations python manage.py migrate # 5. CrĂ©er un superutilisateur (optionnel) python manage.py createsuperuser # 6. Lancer le serveur python manage.py runserver ``` --- ## đŸ—ïž Structure du Projet ``` blog-duhaz/ ├── blog/ # Application blog │ ├── models.py # ModĂšles Article, CatĂ©gorie │ ├── views.py # Vues du blog │ └── templates/ # Templates du blog ├── core/ # Application core (pages statiques) │ ├── models.py # ModĂšles Page, SpeedDial, Contact │ ├── views.py # Vues gĂ©nĂ©riques │ └── templates/ # Templates globaux ├── duhaz_blog/ # Configuration Django │ ├── settings.py # ParamĂštres (sĂ©curisĂ©s) │ └── urls.py # Routes principales ├── static/ # Fichiers statiques (CSS, JS, images) ├── docs/ # 📚 Documentation complĂšte │ ├── README.md # Index de la documentation │ ├── DEMARRAGE.md # Guide de dĂ©marrage │ ├── SECURITE.md # Guide de sĂ©curitĂ© │ └── ... # Autres fichiers de documentation ├── scripts/ # đŸ› ïž Scripts utilitaires │ ├── README.md # Index des scripts │ ├── install.sh # Installation automatique │ ├── start.sh # DĂ©marrage rapide │ └── ... # Autres scripts ├── .env # Variables d'environnement (NON COMMITÉ) ├── .env.example # Template de configuration ├── requirements.txt # DĂ©pendances Python └── manage.py # Gestionnaire Django ``` --- ## 🔧 Configuration ### Fichier `.env` Copiez `.env.example` vers `.env` et configurez : ```env SECRET_KEY=votre-cle-secrete-unique DEBUG=True ALLOWED_HOSTS=localhost,127.0.0.1 DATABASE_NAME=db.sqlite3 ``` ### GĂ©nĂ©rer une nouvelle SECRET_KEY ```bash python3 -c "import secrets; print(''.join(secrets.choice('abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)') for i in range(50)))" ``` --- ## 🎹 FonctionnalitĂ©s ### Blog - ✍ CrĂ©ation et gestion d'articles - đŸ·ïž CatĂ©gorisation des articles - 🔍 Recherche dans les articles - 📊 Compteur de lectures - 📅 Publication programmĂ©e - đŸ–Œïž Support des images ### Pages Statiques - 📄 CrĂ©ation de pages personnalisĂ©es - 🎯 SpeedDial (raccourcis) - 📼 Formulaire de contact - 🔐 Pages protĂ©gĂ©es par authentification ### Administration - đŸ‘šâ€đŸ’Œ Interface d'administration Django - 📝 Éditeur WYSIWYG (Trumbowyg) - đŸ“€ Import/Export de donnĂ©es - đŸ‘„ Gestion des utilisateurs --- ## 🔒 SĂ©curitĂ© Voir le fichier [docs/SECURITE.md](docs/SECURITE.md) pour les dĂ©tails complets. **Points clĂ©s :** - SECRET_KEY stockĂ©e dans `.env` (hors Git) - DEBUG=False obligatoire en production - ALLOWED_HOSTS configurĂ© - Protection CSRF activĂ©e - Headers de sĂ©curitĂ© prĂȘts --- ## 📚 Documentation ### Documentation Principale - [docs/README.md](docs/README.md) - Index complet de la documentation - [docs/DEMARRAGE.md](docs/DEMARRAGE.md) - Guide de dĂ©marrage rapide - [docs/MISE_A_JOUR.md](docs/MISE_A_JOUR.md) - Guide de mise Ă  jour Django 3.2 → 5.1 - [docs/SECURITE.md](docs/SECURITE.md) - Recommandations de sĂ©curitĂ© - [docs/CHANGELOG.md](docs/CHANGELOG.md) - Historique des modifications ### Scripts Utilitaires - [scripts/README.md](scripts/README.md) - Index des scripts disponibles - [scripts/install.sh](scripts/install.sh) - Installation automatique - [scripts/start.sh](scripts/start.sh) - DĂ©marrage rapide - [scripts/check_seo.py](scripts/check_seo.py) - VĂ©rification SEO ### Ressources Externes - [Django 5.1 Documentation](https://docs.djangoproject.com/en/5.1/) - [Django Security](https://docs.djangoproject.com/en/5.1/topics/security/) --- ## đŸ› ïž Commandes Utiles ```bash # Activer l'environnement virtuel source venv/bin/activate # CrĂ©er des migrations python manage.py makemigrations # Appliquer les migrations python manage.py migrate # CrĂ©er un superutilisateur python manage.py createsuperuser # Collecter les fichiers statiques python manage.py collectstatic # Lancer le serveur de dĂ©veloppement python manage.py runserver # Lancer les tests python manage.py test ``` --- ## 🚀 DĂ©ploiement en Production ### Checklist avant dĂ©ploiement 1. **Configuration** ```env DEBUG=False SECRET_KEY=nouvelle-cle-ultra-securisee ALLOWED_HOSTS=votredomaine.com,www.votredomaine.com ``` 2. **Base de donnĂ©es** - Migrer vers PostgreSQL (recommandĂ©) - Configurer les sauvegardes automatiques 3. **SĂ©curitĂ©** - DĂ©commenter les paramĂštres de sĂ©curitĂ© dans `settings.py` - Configurer HTTPS (Let's Encrypt) - Activer les headers de sĂ©curitĂ© 4. **Performance** - Configurer un cache (Redis) - Utiliser Gunicorn comme serveur WSGI - Servir les fichiers statiques avec WhiteNoise ou Nginx 5. **Monitoring** - Configurer les logs - Mettre en place des alertes - Surveiller les performances --- ## 🐛 DĂ©pannage ### Erreur "No module named 'dotenv'" ```bash pip install python-dotenv ``` ### Erreur de migration ```bash python manage.py migrate --run-syncdb ``` ### Le serveur ne dĂ©marre pas - VĂ©rifiez que `.env` existe - VĂ©rifiez que l'environnement virtuel est activĂ© - Consultez les logs d'erreur --- ## 📝 TODO / AmĂ©liorations Futures - [ ] Ajouter des tests unitaires - [ ] Migrer vers PostgreSQL - [ ] Ajouter un systĂšme de cache (Redis) - [ ] Optimiser les requĂȘtes (N+1 queries) - [ ] Migrer vers Class-Based Views - [ ] Ajouter une API REST (Django REST Framework) - [ ] AmĂ©liorer la validation du contenu HTML (bleach) - [ ] Ajouter pagination AJAX - [ ] SystĂšme de commentaires - [ ] Support multilingue --- ## đŸ‘€ Auteur **Duhaz** ## 📄 Licence Ce projet est sous licence privĂ©e. --- ## 🔗 Liens Utiles - [Django Documentation](https://docs.djangoproject.com/) - [Django Security](https://docs.djangoproject.com/en/5.1/topics/security/) - [Python Best Practices](https://docs.python-guide.org/)