แพ็คเกจนี้ช่วยให้นักพัฒนา Django กำหนดค่า Cloudinary สำหรับการให้บริการไฟล์แบบคงที่และสื่อได้อย่างง่ายดาย มันตรวจพบสภาพแวดล้อมการพัฒนาหรือการผลิตโดยอัตโนมัติตามการตั้งค่า DEBUG
DEBUG โดยอัตโนมัติในการติดตั้งแพ็คเกจ Run:
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' (ไม่บังคับ) การใช้ที่เก็บข้อมูลในแอพของคุณ: ด้วยการกำหนดค่าข้างต้นฟิลด์ FileField และ ImageField ของคุณในรุ่น Django จะใช้ Cloudinary โดยอัตโนมัติสำหรับการอัปโหลดไฟล์ในการผลิตโดยอัตโนมัติ ในการพัฒนาเมื่อ 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 ) Cloudinary จะถูกใช้สำหรับไฟล์ทั้งแบบคงที่และสื่อDEBUG = True ) การจัดเก็บไฟล์ในท้องถิ่นจะถูกใช้สำหรับทั้งไฟล์แบบคงที่และสื่อsetup_cloudinary() มีประโยชน์สำหรับการตั้งค่าการจัดเก็บโดยอัตโนมัติโดยไม่จำเป็นต้องกำหนดค่าด้วยตนเองใน settings.py py อย่าลังเลที่จะแยกที่เก็บและส่งคำขอดึง โปรดตรวจสอบให้แน่ใจว่าการเปลี่ยนแปลงทั้งหมดได้รับการทดสอบอย่างดีและปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดของ Django
แพ็คเกจนี้เป็นโอเพ่นซอร์สและมีให้ภายใต้ใบอนุญาต MIT อย่าลังเลที่จะใช้ในโครงการของคุณ