وقتی که یک پروژه جنگو ایجاد میکنیم، همزمان چند فایل مختلف در پوشه پروژه ایجاد میشه ولی چرا؟ تو این مقاله قراره خیلی کوتاه فایلهای مختلف یک پروژه جنگو رو بررسی کنیم تا ببینیم هر کدوم چه نقشی در اجرای پروژه ما دارند. پس حتما تا آخر مقاله با ما باشید.
جنگو یک فریم ورک کامل و جذابه که هر بخش در این مجموعه کار مشخصی رو انجام میده. خب قبل هر چیزی همون طور که میدونید برای ایجاد پروژه جنگو باید بریم سراغ جنگو ادمین و کد زیر رو داخل (shell) اجرا کنیم. فقط باید حواسمون باشه که تو همون آدرس مورد نظرمون این پروژه ایجاد بشه.
django-admin startproject mysite
تو این بخش بهتره دقت کنیم و اسم مناسبی رو برای پروژه خودمون انتخاب کنیم. ما اینجا اسم پروژه رو (mysite) گذاشتیم، شما همون اسمی که میخواین رو انتخاب کنید. حالا بریم سراغ خود پروژه و فایلهایی که داخلش ایجاد شده:
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
manage.py
فایل اولی که باید بریم سراغش (manage.py) هست. این فایل در واقع قلب پروژه شماست. ما برای انجام فرآیندهای مختلف مثل ایجاد دیتابیس، ایجاد سرور لوکال به این فولدر نیاز داریم. ولی فقط همینها نیست، برای اینکه کامل با امکانات این فایل آشنا شیم بهتره بریم سراغ دستور زیر:
py manage.py
بعد از اجرای این دستور تمامی کارهایی که به کمک این فایل میتونیم انجام بدیم رو میبینیم:
[auth]
changepassword
createsuperuser
[contenttypes]
remove_stale_contenttypes
[django]
check
compilemessages
createcachetable
dbshell
diffsettings
dumpdata
flush
inspectdb
loaddata
makemessages
makemigrations
migrate
sendtestemail
shell
showmigrations
sqlflush
sqlmigrate
sqlsequencereset
squashmigrations
startapp
startproject
test
testserver
[sessions]
clearsessions
[staticfiles]
collectstatic
findstatic
runserver
کدهای این فایل معمولا نیازی به تغییر نداره، پس ما هم تغییری ایجاد نمیکنیم.
__init__.py
وقتی بریم سراغ این فایل، خالیه و هیچ کدی داخلش نیست! این فایل در واقع به ما کمک میکنه تا ماژولها برای یک پروژه قابل شناسایی باشند. تقریبا شبیه همون دستور __init__ برای کلاسها در پایتون. بدون کمک این فایل ما قابلیت import کردن ماژولها و پکیجهای مختلف رو نخواهیم داشت.
asgi.py | wsgi.py
این بخشها برای (deploy) کردن پروژه شما استفاده میشه. دیپلوی کردن در واقع به معنی منتشر کردن پروژه بر روی سرور هست. بعد از اتمام پروژه شما نیاز به انتشار اون بر روی یک سرور برای دسترسی عمومی کاربران دارید که این بخش میزبان پروژه شما خواهد بود.
Setting.py
یکی از مهمترین و اصلیترین بخشهای پروژه شما در واقع همین فایل setting.py محسوب میشه که تمامی تنظیمات اصلی مربوط به بخشهای مختلف پروژه جنگو در سطح گلوبال داخلش قرار گرفته. این فایل قابلیت سفارشی سازی بخشهای مختلف پروژه را متناسب با نیاز کاربران فراهم میکنه. اضافه کردن ماژولها و تغییر در مسیردهی فایلها بخشی از امکانات این فایل محسوب میشه.
Urls.py
این بخش در واقع محل قرارگیری (urls) در پروژه هست. به بیان سادهتر، با کمک این بخش محل قرارگیری یا آدرس بخشهای مختلف پروژه تعیین میشه. همچنین با کمک این بخش میتونیم ماژولها و برنامههای مختلف رو به پروژه اصلی وصل کنیم.