Dieses Paket hilft Django -Entwicklern, Cloudinary für das Servieren von statischen und Mediendateien problemlos zu konfigurieren. Es erkennt automatisch die Entwicklungs- oder Produktionsumgebung basierend auf der DEBUG -Einstellung.
DEBUG -Modus.Um das Paket zu installieren, führen Sie aus:
pip install django-cloudinary-helpercloudinary_helper zu Ihren INSTALLED_APPS INSTALLED_APPS cloudinary_helper Ihren settings.py . INSTALLED_APPS = [
...
'cloudinary_helper' ,
...
] Fügen Sie Speicherkonfigurationen für statische und Mediendateien hinzu: Um sicherzustellen, dass Ihre statischen und Mediendateien über Cloudinary in der Produktion serviert werden, fügen Sie Ihren settings.py die folgenden Einstellungen hinzu.
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' (Optional) Verwenden des Speichers in Ihrer App: Mit den oben genannten Konfigurationen verwenden Ihre FileField und ImageField -Felder in Django -Modellen automatisch Cloudary für Datei -Uploads in der Produktion. In der Entwicklung wird stattdessen DEBUG = True lokale Dateispeicher verwendet.
Das Paket ersetzt das FileField und ImageField dynamisch durch CloudinaryField , wenn DEBUG = False .
Dies bedeutet, dass Sie Ihre Modelle nicht manuell anpassen müssen. Verwenden Sie einfach das FileField und ImageField in Ihren Modellen, und das Paket wird den Rest behandeln:
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/' ) Benutzerfreundlichkeit : Entwickler müssen nicht lernen oder daran denken, CloudinaryField explizit in ihren Modellen zu verwenden.
Nahlose Integration : Das Verhalten ändert sich dynamisch basierend auf der Umgebung ( DEBUG -Einstellung).
Rückwärtskompatibilität : Modelle mit Standard -Django -Feldern funktionieren immer noch wie erwartet ohne Änderungen.
Diese Implementierung macht Ihr Paket Entwicklerfreundlicher, indem Sie unnötige Details abstrahieren und gleichzeitig eine nahtlose Integration in Entwicklungs- und Produktionsumgebungen liefern.
StaticStorage -Klasse auf das lokale Dateisystem zurück. Für statische Dateien als die STATICFILES_STORAGE ist keine zusätzliche Konfiguration erforderlich DEBUG = False ) wird Cloudary sowohl für statische als auch für Mediendateien verwendet.DEBUG = True ) wird lokaler Dateispeicher sowohl für statische als auch für Mediendateien verwendet.setup_cloudinary() kann hilfreich sein, um den Speicher automatisch einzurichten, ohne ihn manuell in settings.py zu konfigurieren.Py. Fühlen Sie sich frei, das Repository aufzugeben und Pull -Anfragen einzureichen. Bitte stellen Sie sicher, dass alle Änderungen gut getestet werden und folgen Sie Djangos Best Practices.
Dieses Paket ist Open-Source und unter der MIT-Lizenz erhältlich. Nutzen Sie es in Ihren Projekten.