دوره‌ها / Django / کتابخانه WhiteNoise (Install WhiteNoise)

کتابخانه WhiteNoise (Install WhiteNoise)

25 دقیقه Article

WhiteNoise: مدیریت فایل‌های استاتیک در تولید 🌐

در محیط توسعه، جنگو خودش فایل‌های استاتیک رو سرو می‌کنه. ولی در محیط تولید، باید از یک سرور وب (مثل Nginx) یا کتابخانه WhiteNoise استفاده کنید.

WhiteNoise چیست؟ یک کتابخانه پایتونی که فایل‌های استاتیک رو به صورت مستقیم از Django سرو می‌کنه. برای پروژه‌های کوچک و متوسط عالیه!

نصب WhiteNoise

pip install whitenoise

تنظیمات

# mysite/settings.py
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'whitenoise.middleware.WhiteNoiseMiddleware',  # اضافه کنید
    # ...
]

# تنظیمات WhiteNoise
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage
نکته: WhiteNoise باید بعد از SecurityMiddleware و قبل از بقیه middleware ها قرار بگیره. ترتیب مهمه!
محدودیت: WhiteNoise برای پروژه‌های کوچک و متوسط مناسبه. برای سایت‌های خیلی بزرگ با ترافیک بالا، بهتره از CDN یا سرور وب جداگانه استفاده کنید.

🎯 تمرین عملی:

WhiteNoise رو نصب کنید و تنظیماتش رو در settings.py اضافه کنید. سپس فایل‌های استاتیک رو collect کنید و مطمئن بشید که درست کار می‌کنن.

تمرین‌های عملی

برای تثبیت یادگیری این درس تمرین‌های زیر را حل کنید

تمرین: اضافه کردن WhiteNoise middleware Easy
سوال تمرین

تمرین: اضافه کردن WhiteNoise middleware

اسم middleware قبلی را می‌گیریم و خط WhiteNoise را بعدش می‌گذاریم (به شکل دو خط خروجی).

ورودی (Input)

یک خط: نام middleware اول (مثلاً django.middleware.security.SecurityMiddleware).

خروجی (Output)

دو خط: خط اول همان ورودی، خط دوم whitenoise.middleware.WhiteNoiseMiddleware.

قانون مهم

کد شما باید فقط از stdin بخواند و فقط روی stdout چاپ کند. از ورودی‌های تعاملی استفاده نکنید.

پاسخ تمرین
PYTHON
import sys

def solve():
    first = sys.stdin.read().strip()
    sys.stdout.write(first + '\n' + 'whitenoise.middleware.WhiteNoiseMiddleware')

if __name__ == '__main__':
    solve()

آماده رفتن به درس بعدی هستید؟

این درس را به پایان رساندید و می‌توانید به درس بعدی بروید.