مقدمه

درک تفاوت بین «پروژه» (project) و «اپلیکیشن» (app) در Django بسیار مهم است. یک پروژه کل وب‌سایت یا وب اپلیکیشن شما را در بر می‌گیرد و شامل تنظیمات کلی، URLهای اصلی و مجموعه‌ای از اپلیکیشن‌ها است. یک اپلیکیشن یک بخش ماژولار از پروژه شماست که یک قابلیت یا ویژگی خاص را پیاده‌سازی می‌کند. برای مثال، یک وب‌سایت می‌تواند از اپلیکیشن‌های مجزایی برای وبلاگ، فروشگاه و سیستم مدیریت کاربران تشکیل شده باشد. این ساختار ماژولار، توسعه و نگهداری پروژه‌های بزرگ را بسیار ساده‌تر می‌کند.

ایجاد اپلیکیشن learning_logs

بیایید اولین اپلیکیشن پروژه خود را که مسئولیت مدیریت وبلاگ آموزشی را بر عهده خواهد داشت، ایجاد کنیم.

(ll_env) $ python manage.py startapp learning_logs
                    

این دستور یک پوشه جدید به نام learning_logs ایجاد می‌کند که حاوی ساختار فایل استاندارد یک اپلیکیشن Django است.

ثبت اپلیکیشن در پروژه

پس از ایجاد اپلیکیشن، باید آن را به پروژه خود معرفی کنیم. این کار با افزودن نام اپلیکیشن به لیست INSTALLED_APPS در فایل settings.py پروژه اصلی انجام می‌شود.

Copy Icon learning_log/settings.py
INSTALLED_APPS = [
    # ... other apps
    'django.contrib.staticfiles',

    # My apps
    'learning_logs',
]

تعریف اولین View

یک «ویو» (View) در Django، یک تابع پایتون است که یک درخواست وب (request) را دریافت کرده و یک پاسخ وب (response) را برمی‌گرداند. این پاسخ معمولاً یک صفحه HTML است. ما اولین ویو خود را که صفحه اصلی اپلیکیشن خواهد بود، در فایل learning_logs/views.py تعریف می‌کنیم.

Copy Icon learning_logs/views.py
from django.shortcuts import render
from django.http import HttpResponse

def index(request):
    """The home page for Learning Log."""
    return HttpResponse("Hello, Django world!")

این ساده‌ترین ویو ممکن است. این تابع یک شیء request را دریافت کرده و یک پاسخ HTTP ساده با یک رشته متنی را برمی‌گرداند.

تعریف URLها

آخرین قدم، نگاشت یک URL به این ویو است تا کاربران بتوانند با مراجعه به آن آدرس، ویو ما را مشاهده کنند. ما ابتدا یک فایل urls.py جدید در داخل پوشه اپلیکیشن خود (learning_logs) می‌سازیم.

Copy Icon learning_logs/urls.py
"""Defines URL patterns for learning_logs."""
from django.urls import path
from . import views

app_name = 'learning_logs'
urlpatterns = [
    # Home page
    path('', views.index, name='index'),
]

در این فایل، ما تابع path را برای تعریف یک الگوی URL وارد می‌کنیم. این تابع سه آرگومان می‌گیرد: یک رشته برای الگوی URL (رشته خالی '' به معنی ریشه است)، تابعی از views.py که باید فراخوانی شود، و یک نام برای این الگو.

سپس، باید این فایل urls.py جدید را به فایل urls.py اصلی پروژه معرفی کنیم.

Copy Icon learning_log/urls.py
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('learning_logs.urls')),
]

ما با استفاده از تابع include، تمام URLهای تعریف شده در اپلیکیشن learning_logs را در زیرمجموعه URLهای اصلی پروژه قرار می‌دهیم.

حالا اگر سرور توسعه را دوباره اجرا کرده و به آدرس http://127.0.0.1:8000/ بروید، باید پیام "Hello, Django world!" را مشاهده کنید.

در این درس، ما اولین اپلیکیشن Django خود را ایجاد، ثبت و پیکربندی کردیم. با تعریف یک ویو ساده و نگاشت یک URL به آن، اولین صفحه وب خود را با Django ساختیم. در درس بعدی، به سراغ «ساخت Homepage» خواهیم رفت و با استفاده از تمپلیت‌های HTML، یک صفحه اصلی واقعی و زیباتر برای وبلاگ خود ایجاد خواهیم کرد.