Une API REST Django pour la gestion d'une bibliothèque de livres.
Ce projet est une API REST développée avec Django et Django REST Framework pour gérer une collection de livres. L'API permet de consulter, ajouter et gérer des informations sur les livres, incluant les détails comme le titre, l'auteur, la description, la date de publication, et plus encore.
- 📖 Gestion des livres : CRUD complet pour les livres
- 🔍 API RESTful : Endpoints structurés et standardisés
- 🖼️ Support des images : Upload et gestion d'images de couverture
- 🌐 CORS activé : Compatible avec les applications frontend (Expo/React Native)
- 📊 Base de données SQLite : Stockage léger et efficace
- Python 3.11 ou supérieur
- pip (gestionnaire de paquets Python)
- pipenv (recommandé) ou virtualenv
- Cloner le repository
git clone https://github.com/jocha28/library.git
cd library- Installer les dépendances
Avec Pipenv (recommandé)
pipenv install
pipenv shell
cd django_projectAvec pip et virtualenv
python -m venv venv
source venv/bin/activate # Sur Windows: venv\Scripts\activate
cd django_project
pip install -r requirements.txt- Appliquer les migrations
python manage.py migrate- Créer un superutilisateur (optionnel)
python manage.py createsuperuser- Lancer le serveur de développement
python manage.py runserverL'API sera accessible à l'adresse : http://127.0.0.1:8000/
| Méthode | Endpoint | Description |
|---|---|---|
| GET | /api/ |
Récupérer la liste de tous les livres |
- Interface d'administration Django :
http://127.0.0.1:8000/admin/
library/
├── django_project/
│ ├── apis/ # Application API REST
│ │ ├── serializers.py # Sérialiseurs DRF
│ │ ├── views.py # Vues API
│ │ └── urls.py # Routes API
│ ├── books/ # Application Books
│ │ ├── models.py # Modèle Book
│ │ ├── admin.py # Configuration admin
│ │ └── urls.py # Routes books
│ ├── django_project/ # Configuration projet
│ │ ├── settings.py # Paramètres Django
│ │ ├── urls.py # Routes principales
│ │ └── wsgi.py # Configuration WSGI
│ ├── media/ # Fichiers uploadés
│ ├── db.sqlite3 # Base de données
│ └── manage.py # Script de gestion Django
├── Pipfile # Dépendances Pipenv
└── Pipfile.lock # Lock des dépendances
| Champ | Type | Description |
|---|---|---|
| title | CharField | Titre du livre |
| subtitle | CharField | Sous-titre |
| author | CharField | Auteur |
| cover_image | ImageField | Image de couverture |
| profile_picture | ImageField | Photo de profil |
| description | TextField | Description |
| published_date | DateField | Date de publication |
| publisher | CharField | Éditeur |
| language | CharField | Langue |
| pages | PositiveIntegerField | Nombre de pages |
| genres | CharField | Genres |
Le projet est configuré pour accepter les requêtes depuis :
http://localhost:19006(Expo/React Native)http://127.0.0.1:19006
Pour modifier la configuration CORS, éditez django_project/django_project/settings.py.
python manage.py makemigrationspython manage.py migratepython manage.py test- Django : Framework web Python
- Django REST Framework : Toolkit pour construire des APIs REST
- django-cors-headers : Gestion des en-têtes CORS
- Pillow : Bibliothèque pour le traitement d'images
Ce projet est un projet éducatif.