Этот пакет помогает разработчикам Django легко настраивать облачную для обслуживания статических и медиа -файлов. Он автоматически обнаруживает развитие или производственную среду на основе настройки DEBUG .
DEBUG .Чтобы установить пакет, запустите:
pip install django-cloudinary-helpercloudinary_helper INSTALLED_APPS свой INSTALLED_APPS : cloudinary_helper settings.py . INSTALLED_APPS = [
...
'cloudinary_helper' ,
...
] Добавьте конфигурации хранилища для статических и медиа -файлов: чтобы убедиться, что ваши статические и медиа -файлы обслуживаются через облачную производство, добавьте следующие настройки в ваши 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' (Необязательно) Использование хранилища в вашем приложении: с приведенными выше конфигурациями ваши поля FileField и ImageField в моделях Django автоматически используют облачную загрузку файлов в производстве. В разработке, когда DEBUG = True , вместо этого будет использоваться локальное хранилище файлов.
Пакет динамически заменяет FileField и ImageField на CloudinaryField , когда DEBUG = False .
Это означает, что вам не нужно вручную регулировать свои модели. Просто используйте FileField и ImageField по умолчанию в ваших моделях, и пакет будет обрабатывать остальные:
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/' ) Простота использования : разработчикам не нужно учиться или не забывать, чтобы явно использовал CloudinaryField в своих моделях.
Бесплатная интеграция : поведение динамически изменяется на основе среды (настройки DEBUG ).
Обратная совместимость : модели, написанные стандартными полями Django, все равно будут работать, как и ожидалось, без модификаций.
Эта реализация делает ваш пакет более удобной для разработчиков, абстрагируя ненужные детали, обеспечивая, предоставляя плавную интеграцию как в среде разработки, так и в производственных средах.
StaticStorage вернется в локальную файловую систему. Для статических файлов не требуется дополнительная конфигурация, кроме STATICFILES_STORAGE DEBUG = False ) облачный облачный будет использоваться как для статических, так и для медиа -файлов.DEBUG = True ) локальное хранилище файлов будет использоваться как для статических, так и для медиа -файлов.setup_cloudinary() может быть полезна для автоматической настройки хранилища без необходимости вручную настраивать его в settings.py . Не стесняйтесь раскошелиться на репозиторий и отправлять запросы на привлечение. Пожалуйста, убедитесь, что все изменения хорошо протестированы, и следуйте лучшим практикам Джанго.
Этот пакет открыт и доступен по лицензии MIT. Не стесняйтесь использовать его в своих проектах.