Paket ini membantu pengembang Django dengan mudah mengonfigurasi cloudinary untuk menyajikan file statis dan media. Secara otomatis mendeteksi lingkungan pengembangan atau produksi berdasarkan pengaturan DEBUG .
DEBUG .Untuk menginstal paket, jalankan:
pip install django-cloudinary-helpercloudinary_helper ke INSTALLED_APPS Anda: di settings.py Anda, tambahkan cloudinary_helper ke daftar INSTALLED_APPS : INSTALLED_APPS = [
...
'cloudinary_helper' ,
...
] Tambahkan konfigurasi penyimpanan untuk file statis dan media: Untuk memastikan file statis dan media Anda disajikan melalui cloudinary dalam produksi, tambahkan pengaturan berikut ke settings.py Anda.
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' (Opsional) Menggunakan penyimpanan di aplikasi Anda: Dengan konfigurasi di atas, bidang FileField dan ImageField Anda dalam model Django akan secara otomatis menggunakan cloudinary untuk mengunggah file dalam produksi. Dalam pengembangan, ketika DEBUG = True , penyimpanan file lokal akan digunakan sebagai gantinya.
Paket secara dinamis menggantikan FileField dan ImageField dengan CloudinaryField ketika DEBUG = False .
Ini berarti Anda tidak perlu menyesuaikan model Anda secara manual. Cukup gunakan FileField dan ImageField default di model Anda, dan paket akan menangani sisanya:
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/' ) Kemudahan Penggunaan : Pengembang tidak perlu belajar atau ingat untuk menggunakan CloudinaryField secara eksplisit dalam model mereka.
Integrasi mulus : Perilaku berubah secara dinamis berdasarkan lingkungan (pengaturan DEBUG ).
Kompatibilitas Mundur : Model yang ditulis dengan bidang Django standar masih akan berfungsi seperti yang diharapkan tanpa modifikasi.
Implementasi ini membuat paket Anda lebih ramah pengembang dengan mengabstraksi detail yang tidak perlu sambil memberikan integrasi yang mulus dengan lingkungan pengembangan dan produksi.
StaticStorage akan kembali ke sistem file lokal. Tidak diperlukan konfigurasi tambahan untuk file statis selain STATICFILES_STORAGE DEBUG = False ), cloudinary akan digunakan untuk file statis dan media.DEBUG = True ), penyimpanan file lokal akan digunakan untuk file statis dan media.setup_cloudinary() dapat membantu untuk mengatur penyimpanan secara otomatis tanpa perlu mengonfigurasinya secara manual di settings.py . Jangan ragu untuk membayar repositori dan mengirimkan permintaan tarik. Harap pastikan semua perubahan diuji dengan baik dan ikuti praktik terbaik Django.
Paket ini open-source dan tersedia di bawah lisensi MIT. Jangan ragu untuk menggunakannya dalam proyek Anda.