Este paquete ayuda a los desarrolladores de Django a configurar fácilmente Cloudinary para servir archivos estáticos y multimedia. Detecta automáticamente el entorno de desarrollo o producción en función de la configuración DEBUG .
DEBUG .Para instalar el paquete, ejecute:
pip install django-cloudinary-helpercloudinary_helper a su INSTALLED_APPS : en su settings.py , agregue cloudinary_helper a la lista INSTALLED_APPS : INSTALLED_APPS = [
...
'cloudinary_helper' ,
...
] Agregue configuraciones de almacenamiento para archivos estáticos y multimedia: para asegurarse de que sus archivos estáticos y multimedia se sirvan a través de la producción en la producción nube, agregue la siguiente configuración a su 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' (Opcional) Uso del almacenamiento en su aplicación: con las configuraciones anteriores, sus campos FileField e ImageField en los modelos Django usará automáticamente Cloudinary para las cargas de archivos en producción. En el desarrollo, cuando DEBUG = True , el almacenamiento de archivos locales se utilizará en su lugar.
El paquete reemplaza dinámicamente el FileField e ImageField con CloudinaryField cuando DEBUG = False .
Esto significa que no necesita ajustar manualmente sus modelos. Simplemente use el FileField e ImageField predeterminado en sus modelos, y el paquete manejará el resto:
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/' ) Facilidad de uso : los desarrolladores no necesitan aprender o recordar usar CloudinaryField explícitamente en sus modelos.
Integración perfecta : el comportamiento cambia dinámicamente en función del entorno (configuración DEBUG ).
Compatibilidad hacia atrás : los modelos escritos con campos de Django estándar seguirán funcionando como se esperaba sin modificaciones.
Esta implementación hace que su paquete sea más amigable para el desarrollador al abstraer detalles innecesarios al tiempo que proporciona una integración perfecta con entornos de desarrollo y producción.
StaticStorage volverá al sistema de archivos local. No se requiere una configuración adicional para archivos estáticos que no sean el STATICFILES_STORAGE DEBUG = False ), Cloudinary se usará para archivos estáticos y multimedia.DEBUG = True ), el almacenamiento de archivos locales se utilizará para archivos estáticos y multimedia.setup_cloudinary() puede ser útil para configurar el almacenamiento automáticamente sin necesidad de configurarlo manualmente en settings.py . No dude en bifurcar el repositorio y enviar solicitudes de extracción. Asegúrese de que todos los cambios estén bien probados y siga las mejores prácticas de Django.
Este paquete es de código abierto y está disponible bajo la licencia MIT. Siéntase libre de usarlo en sus proyectos.