ساخت اپلیکیشن (Create App)
ساخت اپلیکیشن: اضافه کردن اتاقها 🏠
همونطور که گفتیم، پروژه مثل یک ساختمانه و اپلیکیشنها مثل اتاقهای اون هستن. مثلاً یک سایت فروشگاهی ممکنه اپلیکیشنهای products, users, و orders داشته باشه.
ساخت اولین اپلیکیشن
فرض کنیم میخوایم یک بخش وبلاگ بسازیم. دستور زیر رو میزنیم:
python manage.py startapp blog
حالا یک پوشه جدید به نام blog ساخته میشه که توش فایلهای models.py, views.py و... هست.
مهمترین مرحله: معرفی اپلیکیشن به پروژه
جنگو به صورت پیشفرض از وجود اپلیکیشن جدید شما خبر نداره! باید برید توی فایل settings.py و اون رو به لیست INSTALLED_APPS اضافه کنید.
ویرایش فایل settings.py:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
...
'blog', # <--- اپلیکیشن جدید ما اینجاست!
]
blog نه MyBlogApplication).
تمرینهای عملی
برای تثبیت یادگیری این درس تمرینهای زیر را حل کنید
🎯 تمرین عملی: چک کردن اپلیکیشنها
یکی از مهمترین کارها در جنگو، مدیریت لیست INSTALLED_APPS است. در این تمرین:
- یک تابع بنویسید که نام یک اپلیکیشن رو بگیره
- چک کنه که آیا اون اپلیکیشن در لیست پیشفرض جنگو هست یا نه
- اگر نیست، یک پیام مناسب نمایش بده که باید به INSTALLED_APPS اضافه بشه
راهنمایی: لیست اپلیکیشنهای پیشفرض: admin, auth, contenttypes, sessions, messages, staticfiles
def check_app_in_installed(app_name):
# لیست اپلیکیشنهای پیشفرض جنگو
default_apps = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
# چک کردن اپلیکیشنهای پیشفرض
if app_name in default_apps:
return "✅ '" + app_name + "' یک اپلیکیشن پیشفرض جنگو است و نیازی به اضافه کردن نیست."
# چک کردن اپلیکیشنهای سفارشی
if not app_name.startswith('django.contrib.'):
msg = "📝 '" + app_name + "' یک اپلیکیشن سفارشی است!
"
msg += "⚠️ مهم: باید به INSTALLED_APPS در settings.py اضافه بشه:
"
msg += "INSTALLED_APPS = [
"
msg += " ...
"
msg += " '" + app_name + "', # <--- این خط رو اضافه کنید
"
msg += "]
"
return msg
return "❓ '" + app_name + "' را نمیشناسم. مطمئن شوید که نام را درست نوشتهاید."
if __name__ == "__main__":
# تست
print(check_app_in_installed("blog"))
print("
" + "="*50 + "
")
print(check_app_in_installed("django.contrib.admin"))
آماده رفتن به درس بعدی هستید؟
این درس را به پایان رساندید و میتوانید به درس بعدی بروید.