Ce projet est une application de blog développée avec le framework Flask en Python.
- Création, édition et suppression d'articles de blog.
- Gestion des utilisateurs (enregistrement, connexion, profil).
- Commentaires sur les articles.
- Système de likes pour les articles.
- Upload d'images mises en avant pour les articles.
-
Cloner le dépôt :
git clone https://github.com/votre_utilisateur/votre_depot.git cd blog-flask
-
Créer un environnement virtuel : Il est recommandé d'utiliser un environnement virtuel pour isoler les dépendances du projet.
python3 -m venv venv
-
Activer l'environnement virtuel :
- Sur Linux/macOS :
source venv/bin/activate
- Sur Windows :
venv\Scripts\activate
- Sur Linux/macOS :
-
Installer les dépendances : Installez les paquets Python nécessaires à partir du fichier
requirements.txt
.pip install -r requirements.txt
-
Configuration de la base de données : Ce projet utilise SQLite par défaut. La base de données sera créée lors de l'exécution des migrations.
-
Exécuter les migrations de base de données : Initialisez et appliquez les migrations de la base de données à l'aide d'Alembic.
flask db upgrade
Si c'est la première fois que vous exécutez les migrations, vous pourriez avoir besoin d'initialiser Alembic et de créer la migration initiale :
flask db init flask db migrate -m "Initial migration" flask db upgrade
-
Créer un utilisateur administrateur (optionnel) : Vous pouvez utiliser la commande CLI pour créer un utilisateur admin par défaut.
flask create-admin
Cette commande vous demandera un nom d'utilisateur et un mot de passe.
Pour lancer l'application en mode développement :
export FLASK_APP=app.py
export FLASK_ENV=development # Pour activer le mode debug
flask run
L'application devrait être accessible à l'adresse http://127.0.0.1:5000/
.
.
├── app/
│ ├── __init__.py # Initialisation de l'application Flask
│ ├── models.py # Modèles de base de données (SQLAlchemy)
│ ├── auth/ # Blueprint pour l'authentification
│ │ ├── __init__.py
│ │ ├── forms.py
│ │ └── routes.py
│ ├── blog/ # Blueprint pour les fonctionnalités du blog
│ │ ├── __init__.py
│ │ ├── forms.py
│ │ └── routes.py
│ ├── main/ # Blueprint pour les routes principales (accueil, à propos, contact)
│ │ ├── __init__.py
│ │ └── routes.py
│ ├── static/ # Fichiers statiques (CSS, JS, images)
│ │ ├── css/
│ │ ├── images/
│ │ └── js/
│ └── templates/ # Templates HTML (Jinja2)
│ ├── base.html # Template de base
│ ├── auth/
│ ├── blog/
│ └── main/
├── migrations/ # Scripts de migration de base de données (Alembic)
├── app.db # Base de données SQLite (sera créée après les migrations)
├── config.py # Configuration de l'application
└── requirements.txt # Dépendances Python
Des options de déploiement gratuit incluent des plateformes comme Render, PythonAnywhere, ou les niveaux gratuits des grands fournisseurs de cloud (GCP, AWS, Azure). Référez-vous à la documentation spécifique de chaque plateforme pour les instructions de déploiement.
licence MIT
landryb