توی این اپیزود سعی داریم تنظیمات پروژه جنگو را یاد بگیریم و کمی بیشتر درمورد فایل settings.py و موارد داخلش بدونیم.

بیایید فایل settings.py را باز کنیم و نگاهی به تنظیمات پروژه بیندازیم.
جنگو تعدادی تنظیمات را بهصورت پیشفرض در این فایل قرار میدهد، اما اینها فقط بخشی از تمام تنظیمات موجود در Django هستند.
شما میتوانید همهی تنظیمات و مقادیر پیشفرض جنگو را در این آدرس ببینید:
https://docs.djangoproject.com/en/5.0/ref/settings/
بیایید برخی از تنظیمات مهم پروژه را بررسی کنیم:
DEBUG: حالت خطایابی - یک مقدار بولین (True / False) است که حالت دیباگ پروژه را فعال یا غیرفعال میکند.
اگر مقدار آن True باشد، زمانی که در برنامه خطای مدیریتنشدهای (uncaught exception) رخ دهد، جنگو صفحهی خطای کامل و جزئیات فنی را نمایش میدهد.
وقتی پروژه را به محیط production منتقل میکنید، باید مقدار آن را False قرار دهید. هرگز وبسایتی را با حالت DEBUG = True در محیط production منتشر نکنید، چون ممکن است اطلاعات حساس پروژه نمایش داده شود.
ALLOWED_HOSTS: تا زمانی که حالت خطایابی فعال باشد یا تستها درحال اجرا باشند، این تنظیم اعمال نمیشود.
اما وقتی پروژه را به production منتقل کنید و DEBUG=False شود، باید دامنه یا هاست سایت خود را در این لیست قرار دهید تا جنگو اجازه دهد درخواستها از آن دامنه مجاز به سرویسدهی شوند.
INSTALLED_APPS: کی از تنظیماتی است که تقریباً در همه پروژهها باید آن را ویرایش کنید.
این تنظیم مشخص میکند که کدام اپلیکیشنها در سایت فعال هستند.
بهصورت پیشفرض Django این اپلیکیشنها را اضافه میکند:
django.contrib.admin - پنل مدیریت وبسایت
django.contrib.auth - فریمورک احراز هویت (authentication)
django.contrib.contenttypes - سیستم مدیریت انواع محتوا در جنگو
django.contrib.sessions - سیستم مدیریت سشن ها
django.contrib.messages - سیستم ارسال پیامها بین درخواستها
django.contrib.staticfiles - سیستمی برای مدیریت فایلهای استاتیک
MIDDLEWARE: لیستی از میانافزارها است که هنگام پردازش درخواستها اجرا میشوند.
ROOT_URLCONF: ماژول پایتونی را مشخص میکند که URLهای اصلی پروژه در آن تعریف شدهاند.
DATABASES: یک دیکشنری شامل تنظیمات تمام پایگاههای دادهی پروژه است.
همیشه باید حداقل یک دیتابیس با نام default وجود داشته باشد.
تنظیمات پیشفرض جنگو استفاده از SQLite3 است.
LANGUAGE_CODE: زبان پیشفرض پروژه جنگو را مشخص میکند.
USE_TZ: مشخص میکند که آیا پشتیبانی از timezone فعال باشد یا خیر.
جنگو بهصورت پیشفرض از دیتابیسهای وابسته به timezone (timezone‑aware) پشتیبانی میکند.
این متغیر زمانی که پروژه را به وسیله دستور startproject ایجاد میکنید مقدار True قرار میگیرد.
اگر در حال حاضر چیز زیادی از آنچه در این پست میبینید متوجه نمیشوید، نگران نباشید.
در فصلهای بعدی بیشتر با تنظیمات مختلف جنگو آشنا خواهید شد.
پست قبلی: (فصل اول - اپیزود ۴ - ایجاد اولین پروژه جنگو)
پست بعدی: (فصل اول - اپیزود ۶ - ایجاد اپ بلاگ و توضیح موارد آن )