Configuration Appwrite pour Django ENISE Site
Prérequis
- Compte Appwrite Cloud ou serveur Appwrite auto-hébergé
- Python 3.9+
- Django 4.2+
Installation
pip install -r requirements.txt
Configuration
1. Variables d'environnement
Créez un fichier .env à la racine du projet :
APPWRITE_ENDPOINT=https://cloud.appwrite.io/v1
APPWRITE_PROJECT_ID=your_project_id
APPWRITE_API_KEY=your_api_key
APPWRITE_DATABASE_ID=enise_db
2. Créer le projet Appwrite
- Connectez-vous à Appwrite Cloud
- Créez un nouveau projet :
enise-site - Notez l'ID du projet
- Créez une base de données :
enise_db
3. Créer les collections
Dans le tableau de bord Appwrite, créez ces collections :
| Collection | Attributs |
|---|---|
| specialites | nom (string), slug (string), description (string), image_url (url), icone (string), ordre (integer) |
| actualites | titre (string), slug (string), contenu (string), image_url (url), date_publication (datetime), est_publie (boolean) |
| contact | nom (string), email (email), sujet (string), message (string), date_envoi (datetime), traite (boolean) |
| partenaires | nom (string), logo_url (url), url (url), type_partenaire (string) |
| statistiques | nom (string), valeur (string), suffixe (string), icone (string), ordre (integer) |
4. Configurer les permissions
Pour chaque collection, configurez les permissions :
- create: Rôle
any(ou utilisateur connecté) - read: Rôle
any - update: Rôle
any - delete: Rôle
admin
Commandes Django
Créer les collections automatiquement
python manage.py setup_appwrite
Tester la connexion
python manage.py sync_appwrite --test
Synchroniser les données locales vers Appwrite
python manage.py sync_appwrite
API REST Endpoints
Les vues Appwrite sont disponibles à ces URLs :
| Méthode | URL | Description |
|---|---|---|
| GET | /api/appwrite/test/ |
Tester la connexion |
| POST | /api/appwrite/documents/ |
Créer un document |
| GET | /api/appwrite/documents/ |
Lister les documents |
| GET | /api/appwrite/documents/<id>/ |
Récupérer un document |
| PUT | /api/appwrite/documents/<id>/ |
Mettre à jour un document |
| DELETE | /api/appwrite/documents/<id>/ |
Supprimer un document |
Exemple d'utilisation
Créer un document :
curl -X POST http://localhost:8000/api/appwrite/documents/ \
-H "Content-Type: application/json" \
-d '{
"collection_id": "specialites",
"nom": "Génie Civil",
"slug": "genie-civil",
"description": "Formation en génie civil",
"icone": "fa-building",
"ordre": 1
}'
Lister les documents :
curl "http://localhost:8000/api/appwrite/documents/?collection_id=specialites"
Structure des fichiers
enise_site/
├── settings.py # Configuration Django
├── appwrite_service.py # Client Appwrite
app_core/
├── appwrite_views.py # Vues API REST
├── management/commands/
│ ├── setup_appwrite.py # Créer les collections
│ └── sync_appwrite.py # Synchroniser les données
requirements.txt
.env.example
Déploiement sur Hugging Face Spaces
Créez un fichier
Procfile:web: gunicorn enise_site.wsgiConfigurez les variables d'environnement dans HF Spaces
Poussez le projet :
git add . git commit -m "Appwrite integration" git push
Documentation
Résolution des problèmes
- "APPWRITE_PROJECT_ID non configuré" : Vérifiez le fichier
.env - Erreur 401 : Vérifiez la clé API
- Erreur 404 : Vérifiez l'ID de la collection