django cloudinary helper
1.0.0
该软件包可帮助Django开发人员轻松地配置云,以服务静态文件和媒体文件。它会根据DEBUG设置自动检测开发或生产环境。
DEBUG模式。要安装软件包,请运行:
pip install django-cloudinary-helpercloudinary_helper添加到您的INSTALLED_APPS :在您的settings.py中,添加cloudinary_helper到INSTALLED_APPS列表: INSTALLED_APPS = [
...
'cloudinary_helper' ,
...
]添加静态和媒体文件的存储配置:为了确保通过生产中的Cloudinary提供静态文件和媒体文件,请将以下设置添加到您的settings.py :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' (可选)使用应用程序中的存储:使用上述配置,Django模型中的FileField和ImageField字段将自动使用Cloudinary用于生产中的文件上传。在开发中,当DEBUG = True时,将使用本地文件存储。
当DEBUG = False时,该软件包用CloudinaryField动态替换了FileField和ImageField 。
这意味着您无需手动调整模型。只需在您的模型中使用默认的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 )中,将使用Cloudinary用于静态文件和媒体文件。DEBUG = True时),静态文件存储将用于静态文件和媒体文件。setup_cloudinary()函数有助于自动设置存储空间,而无需在settings.py中手动配置它。 请随意分叉存储库并提交拉动请求。请确保对所有更改进行良好的测试,并遵循Django的最佳实践。
该软件包是开源的,并根据MIT许可证获得。随时在项目中使用它。