شروع کار با Django
شروع کار با Django در دوره آموزش جامع پایتون با مفاهیمی مانند متغیرها، شرطها، حلقهها، توابع، کلاسها، فایلها و کار
در دوره آموزش جامع پایتون با مفاهیمی مانند متغیرها، شرطها، حلقهها، توابع، کلاسها، فایلها و کار با پایگاه داده آشنا شدیم. حالا وقت آن است که از Python برای ساخت یک وبسایت واقعی استفاده کنیم. در این دوره قرار است با استفاده از Django یک پروژه واقعی و کاربردی بسازیم. یک سایت آموزش آنلاین و فروش دوره مانند سایت آزمون پلاس.
Django یک Web Framework قدرتمند و متنباز برای زبان برنامهنویسی پایتون است که برای ساخت وبسایتها و برنامههای تحت وب استفاده میشود. اگر بخواهیم یک سایت را فقط با Python و بدون استفاده از یک Framework بسازیم، باید بسیاری از امکانات موردنیاز یک وبسایت را خودمان از ابتدا پیادهسازی کنیم. مانند:
Django بسیاری از این امکانات را بهصورت آماده در اختیار ما قرار میدهد. بنابراین به جای اینکه هر بار این امکانات را از صفر بسازیم، میتوانیم از ابزارها و ساختارهای آماده Django استفاده کنیم و تمرکز خود را روی منطق و امکانات اصلی سایت بگذاریم.
Django یکی از محبوبترین Frameworkهای Python برای توسعه وب است و ویژگیهای مختلفی دارد که آن را برای پروژههای واقعی مناسب میکند.
Django بسیاری از امکانات موردنیاز یک وبسایت را از قبل فراهم کرده است. بنابراین توسعهدهنده میتواند سریعتر پروژه را ایجاد و توسعه دهد.
Django ابزارها و مکانیزمهایی برای مقابله با بسیاری از مشکلات امنیتی رایج وب دارد که در این دوره هم پوشش داده شده است.
Django دارای ORM است. با استفاده از ORM میتوانیم بسیاری از عملیات پایگاه داده را با پایتون انجام دهیم و لازم نیست برای هر عملیات مستقیماً SQL بنویسیم. مثلاً بعداً در پروژه خودمان میتوانیم با Python دورههای آموزشی را از پایگاه داده دریافت کنیم.
Django سیستم User و Authentication قدرتمندی دارد که برای پروژهای مانند آزمون پلاس بسیار مهم است. زیرا سایت ما در آینده با کاربران مختلفی سروکار خواهد داشت:
یکی از ویژگیهای بسیار مهم Django، پنل مدیریت آماده آن است. با استفاده از Django Admin میتوانیم اطلاعات پایگاه داده را از طریق یک محیط مدیریتی مدیریت کنیم. در پروژه خودمان از این قابلیت برای مدیریت مواردی مانند:
استفاده خواهیم کرد.
Django برای سازماندهی بخشهای مختلف یک وبسایت از معماری MVT استفاده میکند. MVT مخفف سه کلمه است:
M = Model
V = View
T = Template
این سه بخش در کنار یکدیگر باعث میشوند دادهها، منطق برنامه و ظاهر سایت از یکدیگر تفکیک شوند.
در Django معمولاً هر Model نماینده یک نوع موجودیت در سیستم است. مثلاً در سایت آموزش آنلاین ما میتوانیم Modelهای زیر را داشته باشیم:
Course
Teacher
Category
Lesson
Orderمثلاً Model مربوط به دوره میتواند اطلاعاتی مانند اینها داشته باشد:
عنوان دوره
توضیحات
قیمت
تصویر
مدرس
دستهبندی
تاریخ ایجادModel با Database ارتباط برقرار میکند. بنابراین اگر بخواهیم دورههای موجود در سایت را از پایگاه داده دریافت کنیم، این کار از طریق Model انجام میشود. به زبان ساده میتوانیم بگوییم که: Model یعنی دادههای برنامه و ارتباط با Database
View جایی است که منطق مربوط به درخواست کاربر قرار میگیرد. فرض کنیم کاربر وارد این آدرس شود:
/courses/Django درخواست کاربر را دریافت میکند و View مربوط به این URL را اجرا میکند. View میتواند تصمیم بگیرد که چه کاری انجام شود. مثلاً:
دریافت درخواست کاربر
↓
دریافت دورهها از Database
↓
ارسال دورهها به Templateپس میتوانیم بگوییم که : View یعنی منطق و پردازش درخواست کاربر
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 را نصب میکنیم.
python -m pip install djangoپس از نصب، برای بررسی نسخه Django میتوانیم اجرا کنیم:
django-admin --versionیا:
python -m django --versionدر حال حاضر نسخه پایدار Django 5.2 LTS انتخاب مناسبی برای این دوره است.
حالا میخواهیم اولین 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های مختلف پروژه را جداگانه ایجاد خواهیم کرد.
حالا اولین 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.pyvenv.محیط مجازی پروژه است. کتابخانههایی که برای این پروژه نصب میکنیم در این محیط قرار میگیرند.
manage.pyیکی از مهمترین فایلهای پروژه Django است. از این فایل برای اجرای بسیاری از دستورات مدیریتی Django استفاده میکنیم. مثلاً برای اجرا سرور:
python manage.py runserverیا این دستور برای اعمال Migrationهای پایگاه داده:
python manage.py migrateو یا این دستور برای ساخت یک App جدید:
python manage.py startapp courses
settings.pyاین فایل شامل تنظیمات اصلی پروژه Django است. برای مثال مواردی مانند:
در این فایل تنظیم میشوند. فعلاً لازم نیست همه قسمتهای آن را تغییر دهیم. در طول دوره هر قسمت را زمانی که به آن نیاز داریم بررسی خواهیم کرد.
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 بیشتر صحبت خواهیم کرد.
از همین ابتدا یک تفاوت بسیار مهم را یاد بگیریم. در Django دو مفهوم داریم:
Project در واقع مجموعه اصلی تنظیمات و اجزای یک پروژه Django است.
App یک بخش مستقل از پروژه است که یک قابلیت مشخص را پیادهسازی میکند.
مثلاً در سایت آموزش آنلاین ما ممکن است در آینده Appهایی مانند اینها داشته باشیم:
1. ایجاد پوشه پروژه 2. ایجاد Virtual Environment 3. فعال کردن Virtual Environment 4. نصب Django 5. ایجاد Project 6. اجرای Development Server 7. مشاهده پروژه در مرورگر 8. بررسی ساختار فایلها 9. تغییر LANGUAGE_CODE 10. تغییر TIME_ZONE
شروع کار با Django در دوره آموزش جامع پایتون با مفاهیمی مانند متغیرها، شرطها، حلقهها، توابع، کلاسها، فایلها و کار
عملیات CRUD درSQLite در بخش قبل با مفهوم پایگاه داده، SQLite و نحوه اتصال پایتون به پایگاه داده آشنا شدیم.
اتصال به پایگاه داده (Database) در پایتون وقتی یک برنامه اطلاعاتی را از کاربر دریافت میکند، معمولاً لازم است این
مدیریت خطا (Error Handling) در پایتون در هنگام اجرای برنامه، ممکن است کاربر ورودی نامناسبی وارد کند یا برنامه با
کار با فایل، ماژول، پکیج و محیط مجازی در پایتون در پروژههای واقعی، معمولاً همهی کدها را در یک فایل
کپسولهسازی (Encapsulation) در پایتون فرض کنید کلاسی برای حساب بانکی نوشتهاید. اگر هر کسی بتواند موجودی حساب را مستقیماً تغییر
وراثت و مفاهیم پیشرفته شی گرایی تا اینجا یاد گرفتهاید که چگونه با استفاده از کلاس (Class) و شی (Object)
کلاس و شیء در پایتون (Object-Oriented Programming) تا اینجا با متغیرها، شرطها، حلقهها، توابع و ساختارهای داده در پایتون آشنا
تابع لامبدا (Lambda Function) در پایتون گاهی اوقات فقط به یک تابع خیلی کوچک نیاز داریم؛ تابعی که قرار است
توابع در پایتون اگر هنگام برنامهنویسی مجبور شوید یک قطعه کد را بارها تکرار کنید، برنامه شما طولانی، شلوغ و
مجموعه (Set) در پایتون به زبان ساده، Set مجموعهای از عناصر منحصربهفرد (Unique) است که ترتیب مشخصی ندارد و اجازه
دیکشنری در پایتون تا اینجا با لیست (List) و تاپل (Tuple) آشنا شدیم که هر دو مجموعهای از دادهها را
تاپل (Tuple) در پایتون بعد از آشنایی با لیست (List)، نوبت به یکی دیگر از ساختارهای داده در پایتون یعنی
لیست (List) در پایتون پرکاربردترین ساختار داده تا اینجا یاد گرفتید که هر متغیر فقط یک مقدار را در خود
ساختارهای داده در پایتون در برنامههای واقعی معمولاً با یک داده سروکار نداریم، بلکه باید تعداد زیادی اطلاعات را ذخیره
حلقههای تکرار در پایتون (Python Loops) فرض کنید معلم میخواهد نمرات ۳۰ دانشآموز را از کاربر دریافت کند. اگر حلقه
عملگرهای مقایسهای (Comparison Operators) تا اینجا یاد گرفتیم که با عملگرهای محاسباتی میتوانیم اعداد را با هم جمع، تفریق و…
دریافت ورودی از کاربر در پایتون (Python Input) تا اینجا یاد گرفتیم که چگونه مقدار یک متغیر را خودمان داخل
عملگرهای محاسباتی در پایتون (Arithmetic Operators) تقریباً تمام برنامهها به انجام محاسبات نیاز دارند؛ از جمع و تفریق ساده گرفته
کار با رشتهها در پایتون (Python Strings) مدیریت و پردازش متنها در برنامهها در دنیای برنامهنویسی، اطلاعات همیشه عدد و
متغیرها در پایتون (Python Variables) اولین قدم برای ذخیره و پردازش اطلاعات تصور کنید یک برنامه مینویسید که قرار است
شروع برنامه نویسی با پایتون ساخت اولین پروژه (Hello World) فهرست مطالب بعد از نصب Python چه کاری انجام دهیم؟
آموزش نصب پایتون و ابزارهای موردنیاز (راهنمای کامل برای ویندوز) اگر تصمیم گرفتهاید برنامهنویسی را یاد بگیرید، احتمالاً نام زبان
الگوهای کندل استیک پیشرفته: راهنمای جامع برای معاملهگران حرفهای الگو های کندل استیک پیشرفته (یا به بیان دیگر الگوهای شمعی
آیلتس جنرال یا آکادمیک؟ کدام را باید انتخاب کنیم؟ آیا میدانید که انتخاب اشتباه بین آیلتس آکادمیک و جنرال میتواند
دانلود رایگان نمونه سوالات آزمون PTE جنرال اگر تصمیم گرفتهاید با هدف مهاجرت به یک کشور انگلیسی زبان، در آزمون
معرفی آزمون های زبان انگلیسی معتبر در ایران| کدام یک بهتر است؟ اگه قصد ادامه تحصیل یا مهاجرت داشته باشید،
بهترین روشهای آمادگی برای آزمون تافل چگونه برای آزمون تافل آماده شویم؟ آیا شما هم قصد دارید برای کسب نمره
چگونه در خارج از کشور برای آزمون آیلتس ثبت نام کنیم؟ اگر قصد مهاجرت تحصیلی یا کاری دارید، احتمالاً نام
آزمون GRE مناسب چه رشتههایی است؟ اگر قصد ادامه تحصیل در مقاطع کارشناسی ارشد یا دکترا در دانشگاههای بینالمللی را
بهترین نمونه سوالات اسپیکینگ تافل هوم ادیشن آزمون تافل هوم ادیشن این روزها یکی از پرطرفدارترین گزینهها برای سنجش مهارت
نحوه ثبت نام در آزمون دولینگو در ایران به صورت کامل نحوه ثبت نام در آزمون دولینگو در ایران چگونه
هزینه آزمون GRE در ایران چقدر است؟ اگر قصد مهاجرت تحصیلی دارید، احتمالاً نام آزمون GRE به گوشتان خورده است.
راهنمای کامل ثبتنام و پرداخت هزینه آزمون PTE در ترکیه برای متقاضیان ایرانی آزمون PTE (Pearson Test of English) یکی از
ووچر آزمون چیست و چگونه میتوان آن را تهیه کرد؟ ثبتنام در آزمونهای بینالمللی مانند TOEFL، GRE، PTE، GMAT، IELTS
بهترین تکنیک های لیسنینگ آیلتس برای کسب نمره بالا آزمون آیلتس (IELTS) یکی از معتبرترین آزمونهای ارزیابی مهارت زبان انگلیسی
آزمون پلاس مرجع آموزش برنامهنویسی، هوش مصنوعی، شبکه، نمونه سؤالات کنکورهای کامپیوتر، آزمونهای زبان دکتری و مدارک بینالمللی فناوری اطلاعات است. با ارائه آموزشهای تخصصی، منابع آموزشی و راهنمای آزمونها، به دانشجویان و متخصصان کمک میکنیم تا مهارتهای خود را توسعه داده و در مسیر موفقیت تحصیلی و شغلی گام بردارند.