شروع کار با Django

در دوره آموزش جامع پایتون با مفاهیمی مانند متغیرها، شرط‌ها، حلقه‌ها، توابع، کلاس‌ها، فایل‌ها و کار با پایگاه داده آشنا شدیم. حالا وقت آن است که از Python برای ساخت یک وب‌سایت واقعی استفاده کنیم. در این دوره قرار است با استفاده از Django یک پروژه واقعی و کاربردی بسازیم. یک سایت آموزش آنلاین و فروش دوره مانند سایت آزمون پلاس.

فهرست مطالب

Django چیست؟

Django یک Web Framework قدرتمند و متن‌باز برای زبان برنامه‌نویسی پایتون است که برای ساخت وب‌سایت‌ها و برنامه‌های تحت وب استفاده می‌شود. اگر بخواهیم یک سایت را فقط با Python و بدون استفاده از یک Framework بسازیم، باید بسیاری از امکانات موردنیاز یک وب‌سایت را خودمان از ابتدا پیاده‌سازی کنیم. مانند:

  • دریافت درخواست‌های کاربر
  • مدیریت URLها
  • ارتباط با پایگاه داده
  • مدیریت کاربران
  • ورود و خروج کاربران
  • فرم‌ها
  • مدیریت Session
  • امنیت
  • مدیریت فایل‌ها
  • نمایش صفحات HTML

Django بسیاری از این امکانات را به‌صورت آماده در اختیار ما قرار می‌دهد. بنابراین به جای اینکه هر بار این امکانات را از صفر بسازیم، می‌توانیم از ابزارها و ساختارهای آماده Django استفاده کنیم و تمرکز خود را روی منطق و امکانات اصلی سایت بگذاریم.

چرا Django؟ (مزایای استفاده از جنگو)

Django یکی از محبوب‌ترین Frameworkهای Python برای توسعه وب است و ویژگی‌های مختلفی دارد که آن را برای پروژه‌های واقعی مناسب می‌کند.

سرعت توسعه

Django بسیاری از امکانات موردنیاز یک وب‌سایت را از قبل فراهم کرده است. بنابراین توسعه‌دهنده می‌تواند سریع‌تر پروژه را ایجاد و توسعه دهد.

امنیت

Django ابزارها و مکانیزم‌هایی برای مقابله با بسیاری از مشکلات امنیتی رایج وب دارد که در این دوره هم پوشش داده شده است.

کار با پایگاه داده

Django دارای ORM است. با استفاده از ORM می‌توانیم بسیاری از عملیات پایگاه داده را با پایتون انجام دهیم و لازم نیست برای هر عملیات مستقیماً SQL بنویسیم. مثلاً بعداً در پروژه خودمان می‌توانیم با Python دوره‌های آموزشی را از پایگاه داده دریافت کنیم.

سیستم مدیریت کاربران

Django سیستم User و Authentication قدرتمندی دارد که برای پروژه‌ای مانند آزمون پلاس بسیار مهم است. زیرا سایت ما در آینده با کاربران مختلفی سروکار خواهد داشت:

  • دانشجو
  • مدرس
  • مدیر سایت

پنل مدیریت

یکی از ویژگی‌های بسیار مهم Django، پنل مدیریت آماده آن است. با استفاده از Django Admin می‌توانیم اطلاعات پایگاه داده را از طریق یک محیط مدیریتی مدیریت کنیم. در پروژه خودمان از این قابلیت برای مدیریت مواردی مانند:

  • دوره‌ها
  • دسته‌بندی‌ها
  • مدرس‌ها
  • کاربران
  • سفارش‌ها

استفاده خواهیم کرد.

معماری Django

Django برای سازمان‌دهی بخش‌های مختلف یک وب‌سایت از معماری MVT استفاده می‌کند. MVT مخفف سه کلمه است:

M = Model

V = View

T = Template

این سه بخش در کنار یکدیگر باعث می‌شوند داده‌ها، منطق برنامه و ظاهر سایت از یکدیگر تفکیک شوند. 

Model؛ مدیریت داده‌ها

در Django معمولاً هر Model نماینده یک نوع موجودیت در سیستم است. مثلاً در سایت آموزش آنلاین ما می‌توانیم Modelهای زیر را داشته باشیم:

Course
Teacher
Category
Lesson
Order

مثلاً Model مربوط به دوره می‌تواند اطلاعاتی مانند این‌ها داشته باشد:

عنوان دوره
توضیحات
قیمت
تصویر
مدرس
دسته‌بندی
تاریخ ایجاد

Model با Database ارتباط برقرار می‌کند. بنابراین اگر بخواهیم دوره‌های موجود در سایت را از پایگاه داده دریافت کنیم، این کار از طریق Model انجام می‌شود. به زبان ساده می‌توانیم بگوییم که: Model یعنی داده‌های برنامه و ارتباط با Database

View؛ منطق برنامه

View جایی است که منطق مربوط به درخواست کاربر قرار می‌گیرد. فرض کنیم کاربر وارد این آدرس شود:

/courses/

Django درخواست کاربر را دریافت می‌کند و View مربوط به این URL را اجرا می‌کند. View می‌تواند تصمیم بگیرد که چه کاری انجام شود. مثلاً:

دریافت درخواست کاربر
        ↓
دریافت دوره‌ها از Database
        ↓
ارسال دوره‌ها به Template

پس می‌توانیم بگوییم که : View یعنی منطق و پردازش درخواست کاربر

Template؛ نمایش اطلاعات

Template مسئول نمایش اطلاعات به کاربر است. Template معمولاً شامل HTML است و می‌تواند از Template Syntax خود Django نیز استفاده کند. مثلاً فرض کنید View اطلاعات سه دوره را به Template ارسال کرده است. Template می‌تواند آن‌ها را به شکل زیر نمایش دهد:

<h1>دوره‌های آموزشی</h1>

{% for course in courses %}
    <h2>{{ course.title }}</h2>
    <p>{{ course.description }}</p>
    <span>{{ course.price }}</span>
{% endfor %}

در نهایت کاربر در مرورگر چیزی شبیه این می‌بیند:

دوره‌های آموزشی

آموزش Python
آموزش کامل Python از مقدماتی تا پیشرفته
500,000 تومان

آموزش Django
ساخت وب‌سایت با Django
800,000 تومان

پس می‌توانیم بگوییم که : Template = ظاهر و نحوه نمایش اطلاعات به کاربر

اگر بخواهیم کل فرایندی که با درخواست کاربر اتفاق می‌افتد را به تصویر بکشیم، چارت کامل آن به این شکل خواهد بود:

قدم اول : ساخت محیط مجازی

از دوره آموزش پایتون به خاطر دارید که محیط مجازی باعث می‌شود کتابخانه‌ها و وابستگی‌های هر پروژه از پروژه‌های دیگر جدا باشند. برای مثال ممکن است در آینده چند پروژه Python داشته باشیم که نسخه‌های متفاوتی از یک کتابخانه را نیاز داشته باشند. محیط مجازی از ایجاد تداخل بین این پروژه‌ها جلوگیری می‌کند. برای شروع ساخت وب سایت با استفاده از جنگو نیز از همینجا شروع می‌کنیم. ابتدا یک پوشه برای پروژه ایجاد می‌کنیم. مثلا:

azmoonplus-django

سپس Terminal یا PowerShell را در این پوشه باز می‌کنیم. نسخه Python را بررسی می‌کنیم:

python --version

باید چیزی مشابه این مشاهده کنید:

Python 3.13.7

حالا محیط مجازی را ایجاد می‌کنیم:

python -m venv .venv

بعد از اجرای این دستور، پوشه‌ای با نام .venv ایجاد می‌شود. 

فعال کردن محیط مجازی

در Windows PowerShell دستور زیر را اجرا کنید:

.\.venv\Scripts\Activate.ps1

اگر با محدودیت اجرای Script مواجه شدید، می‌توانید برای همین جلسه PowerShell از دستور زیر استفاده کنید:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

سپس دوباره:

.\.venv\Scripts\Activate.ps1

اگر محیط مجازی با موفقیت فعال شود، معمولاً نام آن در ابتدای خط Terminal نمایش داده می‌شود:

(.venv) PS F:\...\azmoonplus-django>

از این لحظه دستورهای Python و نصب Packageها در محیط مجازی پروژه انجام می‌شوند.

قدم دوم : نصب Django

حالا که محیط مجازی فعال است، Django را نصب می‌کنیم.

python -m pip install django

پس از نصب، برای بررسی نسخه Django می‌توانیم اجرا کنیم:

django-admin --version

یا:

python -m django --version

در حال حاضر نسخه پایدار Django 5.2 LTS انتخاب مناسبی برای این دوره است.

قدم سوم : ساخت اولین Project

حالا می‌خواهیم اولین Project Django را ایجاد کنیم. در Terminal و در پوشه اصلی پروژه اجرا کنید:

django-admin startproject config .

نقطه . در انتهای دستور اهمیت دارد. این نقطه به Django می‌گوید Project را در همین پوشه فعلی ایجاد کند. ساختار پروژه تقریباً به این شکل خواهد شد:

azmoonplus-django/
│
├── .venv/
│
├── manage.py
│
└── config/
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    ├── asgi.py
    └── wsgi.py

در اینجا config نام Project اصلی Django است. بعداً Appهای مختلف پروژه را جداگانه ایجاد خواهیم کرد.

اجرای اولین پروژه Django

حالا اولین Development Server خودمان را اجرا می‌کنیم:

python manage.py runserver

اگر همه چیز درست باشد، Django پیامی مشابه این نمایش می‌دهد:

Starting development server at http://127.0.0.1:8000/

حالا مرورگر را باز کرده و وارد این آدرس شوید:

http://127.0.0.1:8000/

اگر صفحه خوش‌آمدگویی Django را مشاهده کردید، یعنی اولین پروژه Django شما با موفقیت اجرا شده است. 

ساختار پروژه را بشناسیم

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

azmoonplus-django/
│
├── .venv/
│
├── config/
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   ├── asgi.py
│   └── wsgi.py
│
└── manage.py

پوشه venv.

محیط مجازی پروژه است. کتابخانه‌هایی که برای این پروژه نصب می‌کنیم در این محیط قرار می‌گیرند.

 

فایل manage.py

یکی از مهم‌ترین فایل‌های پروژه Django است. از این فایل برای اجرای بسیاری از دستورات مدیریتی Django استفاده می‌کنیم. مثلاً برای اجرا سرور:

python manage.py runserver

یا این دستور برای اعمال Migrationهای پایگاه داده:

python manage.py migrate

و یا این دستور برای ساخت یک App جدید:

python manage.py startapp courses

 

فایل settings.py

این فایل شامل تنظیمات اصلی پروژه Django است. برای مثال مواردی مانند:

  • برنامه‌های نصب‌شده
  • Database
  • زبان
  • Time Zone
  • Static Files
  • Media Files
  • امنیت
  • Templateها

در این فایل تنظیم می‌شوند. فعلاً لازم نیست همه قسمت‌های آن را تغییر دهیم. در طول دوره هر قسمت را زمانی که به آن نیاز داریم بررسی خواهیم کرد.

 

فایل urls.py

این فایل مربوط به URL Routing پروژه است. یعنی مشخص می‌کند وقتی کاربر وارد یک آدرس خاص می‌شود، Django باید چه چیزی را اجرا کند. مثلاً در آینده ممکن است داشته باشیم:

/courses/
/courses/python/
/courses/django/
/login/
/register/

و برای هرکدام مسیر مناسبی تعریف کنیم. در درس سوم به‌صورت کامل با URLها و Viewها کار خواهیم کرد.

 

فایل __init__.py

این فایل به Python اعلام می‌کند که پوشه موردنظر به‌عنوان یک Package پایتونی در نظر گرفته شود. در این فایل فعلاً چیزی نمی‌نویسیم.

ضمنا در توضیح فایل‌هایی در زمان توسعه کاربردی ندارند، عبور کردیم.

اولین تنظیمات پروژه

حالا بهتر است چند تنظیم اولیه را انجام دهیم. فایل زیر را باز کنید:

config/settings.py

در این فایل بخشی به نام LANGUAGE_CODE وجود دارد:

LANGUAGE_CODE = 'en-us'

برای پروژه فارسی می‌توانیم آن را به:

LANGUAGE_CODE = 'fa-ir'

تغییر دهیم.

همچنین:

TIME_ZONE = 'UTC'

را می‌توانیم متناسب با منطقه زمانی پروژه تنظیم کنیم. برای مثال:

TIME_ZONE = 'Asia/Tehran'

در مراحل بعدی درباره تنظیمات زبان، زمان، Static و Media بیشتر صحبت خواهیم کرد.

یک نکته مهم درباره Project و App

از همین ابتدا یک تفاوت بسیار مهم را یاد بگیریم. در Django دو مفهوم داریم:

Porject , App

Project در واقع مجموعه اصلی تنظیمات و اجزای یک پروژه Django است.

App یک بخش مستقل از پروژه است که یک قابلیت مشخص را پیاده‌سازی می‌کند.

مثلاً در سایت آموزش آنلاین ما ممکن است در آینده Appهایی مانند این‌ها داشته باشیم:

accounts, courses, orders, payments

📝 تمرین

یک پروژه Django جدید با نام دلخواه ایجاد کنید و این مراحل را خودتان انجام دهید:
1. ایجاد پوشه پروژه
2. ایجاد Virtual Environment
3. فعال کردن Virtual Environment
4. نصب Django
5. ایجاد Project
6. اجرای Development Server
7. مشاهده پروژه در مرورگر
8. بررسی ساختار فایل‌ها
9. تغییر LANGUAGE_CODE
10. تغییر TIME_ZONE

گام بعدی

معماری Project و App و ساخت اولین App در پروژه آزمون پلاس

رفتن به درس بعدی

برای شرکت در آزمون آماده‌اید؟

با ورود به پنل کاربری می‌توانید جهت ثبت نام در آزمون‌ها و دسترسی به منابع آموزشی اقدام نمایید. کارشناسان ما در اسرع وقت با شما تماس می‌گیرند.

شروع کار با Django

شروع کار با Django در دوره آموزش جامع پایتون با مفاهیمی مانند متغیرها، شرط‌ها، حلقه‌ها، توابع، کلاس‌ها، فایل‌ها و کار

ادامه مطلب »

عملیات CRUD در SQLite

عملیات CRUD درSQLite در بخش قبل با مفهوم پایگاه داده، SQLite و نحوه اتصال پایتون به پایگاه داده آشنا شدیم.

ادامه مطلب »

توابع در پایتون

توابع در پایتون اگر هنگام برنامه‌نویسی مجبور شوید یک قطعه کد را بارها تکرار کنید، برنامه شما طولانی، شلوغ و

ادامه مطلب »

مجموعه در پایتون

مجموعه (Set) در پایتون به زبان ساده، Set مجموعه‌ای از عناصر منحصربه‌فرد (Unique) است که ترتیب مشخصی ندارد و اجازه

ادامه مطلب »

تاپل در پایتون

تاپل (Tuple) در پایتون بعد از آشنایی با لیست (List)، نوبت به یکی دیگر از ساختارهای داده در پایتون یعنی

ادامه مطلب »

لیست در پایتون

لیست (List) در پایتون پرکاربردترین ساختار داده​ تا اینجا یاد گرفتید که هر متغیر فقط یک مقدار را در خود

ادامه مطلب »

آموزش نصب پایتون

آموزش نصب پایتون و ابزارهای موردنیاز (راهنمای کامل برای ویندوز) اگر تصمیم گرفته‌اید برنامه‌نویسی را یاد بگیرید، احتمالاً نام زبان

ادامه مطلب »