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許可證獲得。隨時在項目中使用它。