Ce package aide les développeurs Django à configurer facilement le cloudinary pour servir des fichiers statiques et multimédias. Il détecte automatiquement l'environnement de développement ou de production en fonction du paramètre DEBUG .
DEBUG .Pour installer le package, exécutez:
pip install django-cloudinary-helpercloudinary_helper à votre INSTALLED_APPS : dans vos settings.py , ajoutez cloudinary_helper à la liste INSTALLED_APPS : INSTALLED_APPS = [
...
'cloudinary_helper' ,
...
] Ajouter des configurations de stockage pour les fichiers statiques et multimédias: Pour vous assurer que vos fichiers statiques et multimédias sont servis via Cloudinary en production, ajoutez les paramètres suivants à vos settings.py :
from decouple import config
from cloudinary_helper . utils import setup_cloudinary
if DEBUG :
# Development
STATIC_URL = '/static/'
STATICFILES_DIRS = [ BASE_DIR / 'static' ]
STATIC_ROOT = BASE_DIR / 'staticfiles' # This is where collectstatic will store static files
MEDIA_URL = '/media/'
MEDIA_ROOT = BASE_DIR / 'static/media' # This is where media files will be stored
DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage'
STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage'
else :
# Production
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
setup_cloudinary (
config ( 'CLOUDINARY_CLOUD_NAME' ),
config ( 'CLOUDINARY_API_KEY' ),
config ( 'CLOUDINARY_API_SECRET' )
)
DEFAULT_FILE_STORAGE = 'cloudinary_helper.storages.CloudinaryMediaStorage'
STATICFILES_STORAGE = 'cloudinary_helper.storages.CloudinaryStaticStorage' (Facultatif) Utilisation du stockage dans votre application: Avec les configurations ci-dessus, vos champs FileField et ImageField dans les modèles Django utiliseront automatiquement Cloudinary pour les téléchargements de fichiers en production. En développement, lorsque DEBUG = True , le stockage de fichiers local sera utilisé à la place.
Le package remplace dynamiquement le FileField et ImageField par CloudinaryField lorsque DEBUG = False .
Cela signifie que vous n'avez pas besoin d'ajuster manuellement vos modèles. Utilisez simplement le FileField par défaut et ImageField dans vos modèles, et le package gérera le reste:
from django . db import models
from cloudinary_helper . storages import get_storage_class
class YourModel ( models . Model ):
image = models . ImageField ( storage = get_storage_class (), upload_to = 'images/' )
file = models . FileField ( storage = get_storage_class (), upload_to = 'files/' ) Facilité d'utilisation : les développeurs n'ont pas besoin d'apprendre ou de se souvenir d'utiliser explicitement CloudinaryField dans leurs modèles.
Intégration transparente : le comportement change dynamiquement en fonction de l'environnement (paramètre DEBUG ).
Compatibilité arrière : les modèles écrits avec des champs Django standard fonctionneront toujours comme prévu sans modifications.
Cette implémentation rend votre package plus adapté aux développeurs en abstraction de détails inutiles tout en fournissant une intégration transparente avec les environnements de développement et de production.
StaticStorage retombera au système de fichiers local. Aucune configuration supplémentaire n'est requise pour les fichiers statiques autres que le STATICFILES_STORAGE DEBUG = False ), le cloudinary sera utilisé pour les fichiers statiques et multimédias.DEBUG = True ), le stockage de fichiers local sera utilisé pour les fichiers statiques et multimédias.setup_cloudinary() peut être utile pour configurer automatiquement le stockage sans avoir à le configurer manuellement dans settings.py . N'hésitez pas à alimenter le référentiel et à soumettre des demandes de traction. Veuillez vous assurer que toutes les modifications sont bien testées et suivez les meilleures pratiques de Django.
Ce package est open-source et disponible sous la licence MIT. N'hésitez pas à l'utiliser dans vos projets.