Este pacote ajuda os desenvolvedores do Django a configurar facilmente o Cloudinary para servir arquivos estáticos e de mídia. Ele detecta automaticamente o ambiente de desenvolvimento ou produção com base na configuração DEBUG .
DEBUG .Para instalar o pacote, execute:
pip install django-cloudinary-helpercloudinary_helper ao seu INSTALLED_APPS : No seu settings.py , adicione cloudinary_helper à lista INSTALLED_APPS : INSTALLED_APPS = [
...
'cloudinary_helper' ,
...
] Adicione configurações de armazenamento para arquivos estáticos e de mídia: para garantir que seus arquivos estáticos e de mídia sejam servidos via Cloudinary na produção, adicione as seguintes configurações às suas 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) Usando o armazenamento em seu aplicativo: com as configurações acima, seus campos FileField e ImageField nos modelos Django usarão automaticamente o Cloudinary para uploads de arquivos na produção. No desenvolvimento, quando DEBUG = True , o armazenamento de arquivos local será usado.
O pacote substitui dinamicamente o FileField e ImageField pelo CloudinaryField quando DEBUG = False .
Isso significa que você não precisa ajustar manualmente seus modelos. Basta usar o FileField e ImageField padrão em seus modelos, e o pacote lidará com o 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/' ) Facilidade de uso : os desenvolvedores não precisam aprender ou se lembrar de usar CloudinaryField explicitamente em seus modelos.
Integração perfeita : o comportamento muda dinamicamente com base no ambiente (configuração DEBUG ).
Compatibilidade para trás : os modelos escritos com campos Django padrão ainda funcionarão conforme o esperado sem modificações.
Essa implementação torna seu pacote mais amigável ao desenvolvedor, abstraindo detalhes desnecessários, fornecendo integração perfeita com ambientes de desenvolvimento e produção.
StaticStorage voltará ao sistema de arquivos local. Nenhuma configuração adicional é necessária para arquivos estáticos que não sejam o STATICFILES_STORAGE DEBUG = False ), o Cloudinary será usado para arquivos estáticos e de mídia.DEBUG = True ), o armazenamento de arquivos local será usado para arquivos estáticos e de mídia.setup_cloudinary() pode ser útil para configurar o armazenamento automaticamente, sem precisar configurá -la manualmente em settings.py . Sinta -se à vontade para bifurcar o repositório e enviar solicitações de tração. Verifique se todas as alterações estão bem testadas e siga as melhores práticas de Django.
Este pacote é de código aberto e está disponível sob a licença do MIT. Sinta -se à vontade para usá -lo em seus projetos.