دوره‌ها / Django / ساخت اپلیکیشن (Create App)

ساخت اپلیکیشن (Create App)

25 دقیقه Article

ساخت اپلیکیشن: اضافه کردن اتاق‌ها 🏠

همونطور که گفتیم، پروژه مثل یک ساختمانه و اپلیکیشن‌ها مثل اتاق‌های اون هستن. مثلاً یک سایت فروشگاهی ممکنه اپلیکیشن‌های 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 Easy
سوال تمرین

🎯 تمرین عملی: چک کردن اپلیکیشن‌ها

یکی از مهم‌ترین کارها در جنگو، مدیریت لیست INSTALLED_APPS است. در این تمرین:

  1. یک تابع بنویسید که نام یک اپلیکیشن رو بگیره
  2. چک کنه که آیا اون اپلیکیشن در لیست پیش‌فرض جنگو هست یا نه
  3. اگر نیست، یک پیام مناسب نمایش بده که باید به INSTALLED_APPS اضافه بشه

راهنمایی: لیست اپلیکیشن‌های پیش‌فرض: admin, auth, contenttypes, sessions, messages, staticfiles

پاسخ تمرین
PYTHON
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"))

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

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