مسیر یادگیری برنامه نویسی بک اند

بک اند (Back-End) بخشی از یک وبسایت یا نرم افزار است که کاربران قادر به مشاهده آن نیستند. به عبارت بهتر؛ بک اند، مغز یک سایت است که وظیفه کنترل منطق را بر عهده دارد. کدهایی که در بخش بک اند نوشته می‌شوند، به طور مستقیم با سیستم در ارتباط نیستند، بلکه از طریق سرور به مرورگر کاربرها ارسال می‌شوند؛ به همین دلیل است که به بک اند، برنامه نویسی سمت سرور یا Server Side نیز گفته می‌شود.

📚 12 دوره آموزشی
🗺️ 12 گام یادگیری

نقشه راه تعاملی برنامه نویسی بک اند

برنامه نویسی بک اند چیست؟

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

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

مراحل و سرفصل‌های یادگیری برنامه نویسی بک اند

برای تسلط کامل بر برنامه نویسی بک اند، این نقشه راه به مراحل مشخص تقسیم شده است. پیشنهاد می‌کنیم مراحل را به ترتیب و همراه با تمرین عملی طی کنید:

مرحله 1

مرحله 1: دوره صفر: آشنایی با بکاند و دنیای وب

فصل اول: نرمافزار چگونه کار میکند؟

نرمافزار چیست؟

درس 1: نرمافزار چیست؟

ورودی، پردازش و خروجی

درس 2: ورودی، پردازش و خروجی

برنامه موبایل، دسکتاپ و وب

درس 3: برنامه موبایل، دسکتاپ و وب

Frontend چیست؟

درس 4: Frontend چیست؟

Backend چیست؟

درس 5: Backend چیست؟

پایگاه داده چیست؟

درس 6: پایگاه داده چیست؟

مثال واقعی: ثبتنام در یک سایت

درس 7: مثال واقعی: ثبتنام در یک سایت

فصل دوم: اینترنت و وب

اینترنت چیست؟

درس 1: اینترنت چیست؟

مرورگر و سرور

درس 2: مرورگر و سرور

درخواست و پاسخ

درس 3: درخواست و پاسخ

دامنه و آدرس IP

درس 4: دامنه و آدرس IP

URL چیست؟

درس 5: URL چیست؟

HTTP و HTTPS

درس 6: HTTP و HTTPS

یک سایت چگونه باز میشود؟

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

فصل سوم: دادهها در یک سایت

سایت اطلاعات را کجا نگه میدارد؟

درس 1: سایت اطلاعات را کجا نگه میدارد؟

اطلاعات کاربر چیست؟

درس 2: اطلاعات کاربر چیست؟

ثبتنام چگونه انجام میشود؟

درس 3: ثبتنام چگونه انجام میشود؟

ورود چگونه انجام میشود؟

درس 4: ورود چگونه انجام میشود؟

سبد خرید چگونه ذخیره میشود؟

درس 5: سبد خرید چگونه ذخیره میشود؟

چرا باید از اطلاعات محافظت کنیم؟

درس 6: چرا باید از اطلاعات محافظت کنیم؟

فصل چهارم: ابزارهای برنامهنویس بکاند

فایل و پوشه

درس 1: فایل و پوشه

نصب Python

درس 2: نصب Python

آشنایی با VS Code

درس 3: آشنایی با VS Code

Terminal چیست؟

درس 4: Terminal چیست؟

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

درس 5: اجرای اولین دستور

ساخت پوشه پروژه

درس 6: ساخت پوشه پروژه

اجرای اولین فایل Python

درس 7: اجرای اولین فایل Python

آشنایی مقدماتی با Git

درس 8: آشنایی مقدماتی با Git

مرحله 2

مرحله 2: دوره اول: برنامهنویسی مقدماتی با Python

فصل اول: اولین برنامه Python

Python چیست و چه کاربردهایی دارد؟

درس 1: Python چیست و چه کاربردهایی دارد؟

اجرای Python در Terminal

درس 2: اجرای Python در Terminal

ساخت فایل .py

درس 3: ساخت فایل .py

دستور print

درس 4: دستور print

Comment

درس 5: Comment

خطاهای Syntax

درس 6: خطاهای Syntax

خواندن پیام خطا

درس 7: خواندن پیام خطا

ساخت برنامه معرفی خود

درس 8: ساخت برنامه معرفی خود

فصل دوم: متغیرها و انواع داده

متغیر چیست؟

درس 1: متغیر چیست؟

انتخاب نام مناسب برای متغیر

درس 2: انتخاب نام مناسب برای متغیر

String

درس 3: String

Integer و Float

درس 4: Integer و Float

Boolean

درس 5: Boolean

مقدار None

درس 6: مقدار None

تابع type

درس 7: تابع type

تبدیل نوع داده

درس 8: تبدیل نوع داده

دریافت اطلاعات با input

درس 9: دریافت اطلاعات با input

فصل سوم: عملگرها

جمع، تفریق، ضرب و تقسیم

درس 1: جمع، تفریق، ضرب و تقسیم

تقسیم صحیح

درس 2: تقسیم صحیح

باقیمانده تقسیم

درس 3: باقیمانده تقسیم

توان

درس 4: توان

مقایسه اعداد

درس 5: مقایسه اعداد

برابری و نابرابری

درس 6: برابری و نابرابری

عملگرهای منطقی

درس 7: عملگرهای منطقی

ترتیب اجرای عملگرها

درس 8: ترتیب اجرای عملگرها

فصل چهارم: شرطها

تصمیمگیری در برنامه

درس 1: تصمیمگیری در برنامه

دستور if

درس 2: دستور if

دستور else

درس 3: دستور else

دستور elif

درس 4: دستور elif

شرطهای ترکیبی

درس 5: شرطهای ترکیبی

شرطهای تودرتو

درس 6: شرطهای تودرتو

بررسی چند حالت

درس 7: بررسی چند حالت

نوشتن شرط خوانا

درس 8: نوشتن شرط خوانا

فصل پنجم: حلقهها

چرا به تکرار نیاز داریم؟

درس 1: چرا به تکرار نیاز داریم؟

حلقه for

درس 2: حلقه for

تابع range

درس 3: تابع range

حلقه while

درس 4: حلقه while

شمارنده

درس 5: شمارنده

break

درس 6: break

continue

درس 7: continue

حلقه تودرتو

درس 8: حلقه تودرتو

جلوگیری از حلقه بینهایت

درس 9: جلوگیری از حلقه بینهایت

فصل ششم: توابع

تابع چیست؟

درس 1: تابع چیست؟

تعریف تابع

درس 2: تعریف تابع

اجرای تابع

درس 3: اجرای تابع

پارامتر

درس 4: پارامتر

آرگومان

درس 5: آرگومان

خروجی با return

درس 6: خروجی با return

مقدار پیشفرض

درس 7: مقدار پیشفرض

متغیر محلی و Scope

درس 8: متغیر محلی و Scope

تقسیم مسئله به توابع کوچک

درس 9: تقسیم مسئله به توابع کوچک

مستندسازی تابع

درس 10: مستندسازی تابع

فصل هفتم: رشتهها

کاراکتر و String

درس 1: کاراکتر و String

دسترسی به حروف

درس 2: دسترسی به حروف

برش رشته

درس 3: برش رشته

طول رشته

درس 4: طول رشته

متدهای مهم String

درس 5: متدهای مهم String

جستوجو و جایگزینی

درس 6: جستوجو و جایگزینی

پاکسازی ورودی کاربر

درس 7: پاکسازی ورودی کاربر

قالببندی با f-string

درس 8: قالببندی با f-string

مرحله 3

مرحله 3: دوره دوم: ساختارهای داده و Python کاربردی

فصل اول: List

فهرست چیست؟

درس 1: فهرست چیست؟

ساخت List

درس 2: ساخت List

دسترسی به اعضا

درس 3: دسترسی به اعضا

تغییر عضو

درس 4: تغییر عضو

اضافهکردن عضو

درس 5: اضافهکردن عضو

حذف عضو

درس 6: حذف عضو

مرتبسازی

درس 7: مرتبسازی

جستوجو

درس 8: جستوجو

پیمایش List

درس 9: پیمایش List

List تودرتو

درس 10: List تودرتو

فصل دوم: Dictionary

داده کلید و مقدار

درس 1: داده کلید و مقدار

ساخت Dictionary

درس 2: ساخت Dictionary

خواندن اطلاعات

درس 3: خواندن اطلاعات

تغییر اطلاعات

درس 4: تغییر اطلاعات

اضافهکردن کلید

درس 5: اضافهکردن کلید

حذف کلید

درس 6: حذف کلید

پیمایش کلیدها و مقادیر

درس 7: پیمایش کلیدها و مقادیر

Dictionary تودرتو

درس 8: Dictionary تودرتو

List شامل Dictionary

درس 9: List شامل Dictionary

مدلکردن دانشآموز، محصول و کتاب

درس 10: مدلکردن دانشآموز، محصول و کتاب

فصل سوم: Tuple و Set

Tuple چیست؟

درس 1: Tuple چیست؟

تفاوت Tuple و List

درس 2: تفاوت Tuple و List

Set چیست؟

درس 3: Set چیست؟

حذف دادههای تکراری

درس 4: حذف دادههای تکراری

اجتماع و اشتراک

درس 5: اجتماع و اشتراک

انتخاب ساختار داده مناسب

درس 6: انتخاب ساختار داده مناسب

فصل چهارم: متدهای کاربردی و Comprehension

enumerate

درس 1: enumerate

zip

درس 2: zip

min، max و sum

درس 3: min، max و sum

sorted

درس 4: sorted

List Comprehension

درس 5: List Comprehension

شرط در Comprehension

درس 6: شرط در Comprehension

Dictionary Comprehension

درس 7: Dictionary Comprehension

خوانایی در برابر کوتاهنویسی

درس 8: خوانایی در برابر کوتاهنویسی

فصل پنجم: مدیریت خطا

خطاهای Syntax، Runtime و Logic

درس 1: خطاهای Syntax، Runtime و Logic

Exception چیست؟

درس 2: Exception چیست؟

try و except

درس 3: try و except

مدیریت چند خطا

درس 4: مدیریت چند خطا

else و finally

درس 5: else و finally

تولید خطا با raise

درس 6: تولید خطا با raise

پیام خطای مناسب برای کاربر

درس 7: پیام خطای مناسب برای کاربر

ثبت و بررسی خطا

درس 8: ثبت و بررسی خطا

فصل ششم: فایلها

فایل متنی چیست؟

درس 1: فایل متنی چیست؟

بازکردن فایل

درس 2: بازکردن فایل

خواندن فایل

درس 3: خواندن فایل

نوشتن در فایل

درس 4: نوشتن در فایل

اضافهکردن محتوا

درس 5: اضافهکردن محتوا

استفاده از with

درس 6: استفاده از with

مسیر فایلها

درس 7: مسیر فایلها

مدیریت خطای فایل

درس 8: مدیریت خطای فایل

کار با CSV

درس 9: کار با CSV

ذخیره اطلاعات ساده در JSON

درس 10: ذخیره اطلاعات ساده در JSON

فصل هفتم: ماژولها و پکیجها

ماژول چیست؟

درس 1: ماژول چیست؟

ساخت ماژول شخصی

درس 2: ساخت ماژول شخصی

import

درس 3: import

واردکردن بخش مشخص

درس 4: واردکردن بخش مشخص

ماژولهای استاندارد Python

درس 5: ماژولهای استاندارد Python

datetime

درس 6: datetime

random

درس 7: random

pathlib

درس 8: pathlib

ساخت پکیج ساده

درس 9: ساخت پکیج ساده

تقسیم پروژه به چند فایل

درس 10: تقسیم پروژه به چند فایل

مرحله 4

مرحله 4: دوره سوم: برنامهنویسی شیگرا و طراحی نرمافزار

فصل اول: ورود به شیگرایی

مسئله کدهای پراکنده

درس 1: مسئله کدهای پراکنده

Object چیست؟

درس 2: Object چیست؟

Class چیست؟

درس 3: Class چیست؟

ساخت اولین Class

درس 4: ساخت اولین Class

ساخت Object

درس 5: ساخت Object

Attribute

درس 6: Attribute

Method

درس 7: Method

متد __init__

درس 8: متد __init__

فصل دوم: رفتار کلاسها

Instance Attribute

درس 1: Instance Attribute

Class Attribute

درس 2: Class Attribute

Instance Method

درس 3: Instance Method

Class Method

درس 4: Class Method

Static Method

درس 5: Static Method

متد __str__

درس 6: متد __str__

اعتبارسنجی اطلاعات شیء

درس 7: اعتبارسنجی اطلاعات شیء

همکاری چند شیء

درس 8: همکاری چند شیء

فصل سوم: اصول شیگرایی

Encapsulation

درس 1: Encapsulation

Property

درس 2: Property

Inheritance

درس 3: Inheritance

Override

درس 4: Override

Polymorphism

درس 5: Polymorphism

Composition

درس 6: Composition

ارثبری یا ترکیب؟

درس 7: ارثبری یا ترکیب؟

جلوگیری از طراحی بیش از حد پیچیده

درس 8: جلوگیری از طراحی بیش از حد پیچیده

فصل چهارم: مدلسازی پروژه واقعی

شناسایی موجودیتها

درس 1: شناسایی موجودیتها

تعیین ویژگیها

درس 2: تعیین ویژگیها

تعیین رفتارها

درس 3: تعیین رفتارها

ارتباط میان موجودیتها

درس 4: ارتباط میان موجودیتها

طراحی کلاس User

درس 5: طراحی کلاس User

طراحی کلاس Product

درس 6: طراحی کلاس Product

طراحی کلاس Order

درس 7: طراحی کلاس Order

طراحی کلاس OrderItem

درس 8: طراحی کلاس OrderItem

محاسبه مبلغ سفارش

درس 9: محاسبه مبلغ سفارش

مدیریت وضعیت سفارش

درس 10: مدیریت وضعیت سفارش

فصل پنجم: محیط مجازی و مدیریت وابستگیها

کتابخانه چیست؟

درس 1: کتابخانه چیست؟

pip چیست؟

درس 2: pip چیست؟

نصب پکیج

درس 3: نصب پکیج

محیط مجازی چیست؟

درس 4: محیط مجازی چیست؟

ساخت Virtual Environment

درس 5: ساخت Virtual Environment

فعالسازی و غیرفعالسازی

درس 6: فعالسازی و غیرفعالسازی

فایل وابستگیها

درس 7: فایل وابستگیها

نصب وابستگیهای یک پروژه

درس 8: نصب وابستگیهای یک پروژه

تفاوت وابستگی مستقیم و غیرمستقیم

درس 9: تفاوت وابستگی مستقیم و غیرمستقیم

مرحله 5

مرحله 5: دوره چهارم: وب، HTTP، API و پایگاه داده

فصل اول: HTTP

Client و Server

درس 1: Client و Server

Request و Response

درس 2: Request و Response

ساختار URL

درس 3: ساختار URL

HTTP Method

درس 4: HTTP Method

GET

درس 5: GET

POST

درس 6: POST

PUT و PATCH

درس 7: PUT و PATCH

DELETE

درس 8: DELETE

Header

درس 9: Header

Body

درس 10: Body

Query Parameter

درس 11: Query Parameter

Status Code

درس 12: Status Code

فصل دوم: وضعیتهای HTTP

پاسخهای 2xx

درس 1: پاسخهای 2xx

Redirectهای 3xx

درس 2: Redirectهای 3xx

خطاهای 4xx

درس 3: خطاهای 4xx

خطاهای 5xx

درس 4: خطاهای 5xx

تفاوت 400 و 404

درس 5: تفاوت 400 و 404

تفاوت 401 و 403

درس 6: تفاوت 401 و 403

انتخاب Status Code مناسب

درس 7: انتخاب Status Code مناسب

طراحی پاسخ خطای خوانا

درس 8: طراحی پاسخ خطای خوانا

فصل سوم: JSON و API

API چیست؟

درس 1: API چیست؟

Frontend چگونه با Backend صحبت میکند؟

درس 2: Frontend چگونه با Backend صحبت میکند؟

JSON چیست؟

درس 3: JSON چیست؟

Object و Array در JSON

درس 4: Object و Array در JSON

تبدیل داده Python به JSON

درس 5: تبدیل داده Python به JSON

Endpoint چیست؟

درس 6: Endpoint چیست؟

Resource چیست؟

درس 7: Resource چیست؟

طراحی API مدیریت تکالیف

درس 8: طراحی API مدیریت تکالیف

استفاده از ابزار آزمایش API

درس 9: استفاده از ابزار آزمایش API

تفاوت API و صفحه HTML

درس 10: تفاوت API و صفحه HTML

فصل چهارم: مبانی پایگاه داده

مشکل ذخیره اطلاعات در فایل

درس 1: مشکل ذخیره اطلاعات در فایل

Database چیست؟

درس 2: Database چیست؟

جدول

درس 3: جدول

سطر و ستون

درس 4: سطر و ستون

نوع داده ستون

درس 5: نوع داده ستون

Primary Key

درس 6: Primary Key

Foreign Key

درس 7: Foreign Key

ارتباط یکبهیک

درس 8: ارتباط یکبهیک

ارتباط یکبهچند

درس 9: ارتباط یکبهچند

ارتباط چندبهچند

درس 10: ارتباط چندبهچند

فصل پنجم: SQL مقدماتی

ساخت جدول

درس 1: ساخت جدول

افزودن اطلاعات

درس 2: افزودن اطلاعات

خواندن اطلاعات

درس 3: خواندن اطلاعات

شرط با WHERE

درس 4: شرط با WHERE

مرتبسازی

درس 5: مرتبسازی

محدودکردن نتایج

درس 6: محدودکردن نتایج

ویرایش اطلاعات

درس 7: ویرایش اطلاعات

حذف اطلاعات

درس 8: حذف اطلاعات

توابع شمارشی

درس 9: توابع شمارشی

گروهبندی

درس 10: گروهبندی

اتصال جدولها با JOIN

درس 11: اتصال جدولها با JOIN

تمرین گزارش نمرات

درس 12: تمرین گزارش نمرات

فصل ششم: طراحی پایگاه داده

شناسایی موجودیتها

درس 1: شناسایی موجودیتها

طراحی جدول کاربران

درس 2: طراحی جدول کاربران

طراحی جدول دورهها

درس 3: طراحی جدول دورهها

طراحی جدول ثبتنام

درس 4: طراحی جدول ثبتنام

طراحی جدول درسها

درس 5: طراحی جدول درسها

طراحی جدول پیشرفت

درس 6: طراحی جدول پیشرفت

جلوگیری از داده تکراری

درس 7: جلوگیری از داده تکراری

محدودیتهای داده

درس 8: محدودیتهای داده

رسم نمودار ارتباطها

درس 9: رسم نمودار ارتباطها

بازبینی طراحی

درس 10: بازبینی طراحی

مرحله 6

مرحله 6: دوره پنجم: شروع توسعه وب با Django

فصل اول: شروع پروژه Django

Framework چیست؟

درس 1: Framework چیست؟

Django چه مسئلهای را حل میکند؟

درس 2: Django چه مسئلهای را حل میکند؟

نصب Django

درس 3: نصب Django

ساخت Project

درس 4: ساخت Project

ساختار پروژه

درس 5: ساختار پروژه

اجرای Development Server

درس 6: اجرای Development Server

فایل settings.py

درس 7: فایل settings.py

فایل manage.py

درس 8: فایل manage.py

فایل urls.py

درس 9: فایل urls.py

ساخت اولین App

درس 10: ساخت اولین App

فصل دوم: URL و View

URL Pattern

درس 1: URL Pattern

ساخت اولین View

درس 2: ساخت اولین View

پاسخ متنی

درس 3: پاسخ متنی

اتصال URL به View

درس 4: اتصال URL به View

جداکردن URLهای App

درس 5: جداکردن URLهای App

پارامتر مسیر

درس 6: پارامتر مسیر

نامگذاری URL

درس 7: نامگذاری URL

Redirect

درس 8: Redirect

خطای 404

درس 9: خطای 404

طراحی مسیرهای سایت

درس 10: طراحی مسیرهای سایت

فصل سوم: Template

Template چیست؟

درس 1: Template چیست؟

ساخت پوشه Template

درس 2: ساخت پوشه Template

تابع render

درس 3: تابع render

ارسال Context

درس 4: ارسال Context

نمایش متغیر

درس 5: نمایش متغیر

شرط در Template

درس 6: شرط در Template

حلقه در Template

درس 7: حلقه در Template

فیلترهای Template

درس 8: فیلترهای Template

لینکسازی با نام URL

درس 9: لینکسازی با نام URL

نمایش صفحه فهرست دورهها

درس 10: نمایش صفحه فهرست دورهها

فصل چهارم: ارثبری قالب

مشکل تکرار HTML

درس 1: مشکل تکرار HTML

ساخت Base Template

درس 2: ساخت Base Template

تعریف Block

درس 3: تعریف Block

استفاده از extends

درس 4: استفاده از extends

ساخت Header و Footer مشترک

درس 5: ساخت Header و Footer مشترک

ساخت Navigation

درس 6: ساخت Navigation

Partial Template

درس 7: Partial Template

ساخت Layout پروژه

درس 8: ساخت Layout پروژه

فصل پنجم: فایلهای Static و Media

فایل Static چیست؟

درس 1: فایل Static چیست؟

اتصال CSS

درس 2: اتصال CSS

اضافهکردن JavaScript

درس 3: اضافهکردن JavaScript

نمایش تصویر ثابت

درس 4: نمایش تصویر ثابت

تنظیم Static در پروژه

درس 5: تنظیم Static در پروژه

فایل Media چیست؟

درس 6: فایل Media چیست؟

آپلود تصویر

درس 7: آپلود تصویر

نمایش تصویر آپلودشده

درس 8: نمایش تصویر آپلودشده

تفاوت Static و Media

درس 9: تفاوت Static و Media

محدودیت فایل آپلودی

درس 10: محدودیت فایل آپلودی

مرحله 7

مرحله 7: دوره ششم: مدلها، ORM و پنل مدیریت Django

فصل اول: Model

Model چیست؟

درس 1: Model چیست؟

ارتباط Model و جدول

درس 2: ارتباط Model و جدول

ساخت اولین Model

درس 3: ساخت اولین Model

فیلد متنی

درس 4: فیلد متنی

فیلد عددی

درس 5: فیلد عددی

فیلد Boolean

درس 6: فیلد Boolean

فیلد تاریخ و زمان

درس 7: فیلد تاریخ و زمان

مقدار پیشفرض

درس 8: مقدار پیشفرض

فیلد اختیاری

درس 9: فیلد اختیاری

متد __str__

درس 10: متد __str__

فصل دوم: Migration

Migration چیست؟

درس 1: Migration چیست؟

ساخت Migration

درس 2: ساخت Migration

اجرای Migration

درس 3: اجرای Migration

مشاهده SQL تولیدشده

درس 4: مشاهده SQL تولیدشده

تغییر Model

درس 5: تغییر Model

افزودن فیلد جدید

درس 6: افزودن فیلد جدید

مشکلات مقدار پیشفرض

درس 7: مشکلات مقدار پیشفرض

تاریخچه Migration

درس 8: تاریخچه Migration

خطر حذف Migration

درس 9: خطر حذف Migration

تغییر امن ساختار داده

درس 10: تغییر امن ساختار داده

فصل سوم: ORM

ORM چیست؟

درس 1: ORM چیست؟

ساخت رکورد

درس 2: ساخت رکورد

دریافت همه رکوردها

درس 3: دریافت همه رکوردها

دریافت یک رکورد

درس 4: دریافت یک رکورد

فیلترکردن

درس 5: فیلترکردن

مرتبسازی

درس 6: مرتبسازی

ویرایش رکورد

درس 7: ویرایش رکورد

حذف رکورد

درس 8: حذف رکورد

Lookupها

درس 9: Lookupها

QuerySet

درس 10: QuerySet

شمارش و وجود داده

درس 11: شمارش و وجود داده

کار با Django Shell

درس 12: کار با Django Shell

فصل چهارم: ارتباط Modelها

ارتباط یکبهیک

درس 1: ارتباط یکبهیک

ارتباط یکبهچند

درس 2: ارتباط یکبهچند

ForeignKey

درس 3: ForeignKey

رفتار حذف

درس 4: رفتار حذف

ارتباط چندبهچند

درس 5: ارتباط چندبهچند

ManyToManyField

درس 6: ManyToManyField

Related Name

درس 7: Related Name

Query روی ارتباطها

درس 8: Query روی ارتباطها

مدل Course و Chapter

درس 9: مدل Course و Chapter

مدل Lesson و Step

درس 10: مدل Lesson و Step

مدل Enrollment

درس 11: مدل Enrollment

مدل LessonProgress

درس 12: مدل LessonProgress

فصل پنجم: Django Admin

ساخت Superuser

درس 1: ساخت Superuser

ورود به Admin

درس 2: ورود به Admin

ثبت Model

درس 3: ثبت Model

نمایش ستونها

درس 4: نمایش ستونها

جستوجو

درس 5: جستوجو

فیلتر

درس 6: فیلتر

مرتبسازی

درس 7: مرتبسازی

Inline

درس 8: Inline

فیلدهای فقطخواندنی

درس 9: فیلدهای فقطخواندنی

Action مدیریتی

درس 10: Action مدیریتی

گروهبندی فیلدها

درس 11: گروهبندی فیلدها

محدودیت Admin

درس 12: محدودیت Admin

فصل ششم: بهینهسازی Query مقدماتی

Query پایگاه داده چیست؟

درس 1: Query پایگاه داده چیست؟

مشاهده تعداد Queryها

درس 2: مشاهده تعداد Queryها

مشکل N+1

درس 3: مشکل N+1

select_related

درس 4: select_related

prefetch_related

درس 5: prefetch_related

انتخاب فیلدهای موردنیاز

درس 6: انتخاب فیلدهای موردنیاز

مرتبسازی در پایگاه داده

درس 7: مرتبسازی در پایگاه داده

صفحهبندی دادهها

درس 8: صفحهبندی دادهها

مرحله 8

مرحله 8: دوره هفتم: فرمها، کاربران و سایت کامل Django

فصل اول: Form

Form در وب چگونه کار میکند؟

درس 1: Form در وب چگونه کار میکند؟

تفاوت GET و POST

درس 2: تفاوت GET و POST

ساخت Django Form

درس 3: ساخت Django Form

فیلدهای فرم

درس 4: فیلدهای فرم

Widget

درس 5: Widget

نمایش فرم

درس 6: نمایش فرم

دریافت داده فرم

درس 7: دریافت داده فرم

is_valid

درس 8: is_valid

cleaned_data

درس 9: cleaned_data

نمایش خطا

درس 10: نمایش خطا

فصل دوم: ModelForm

مشکل تکرار Model و Form

درس 1: مشکل تکرار Model و Form

ساخت ModelForm

درس 2: ساخت ModelForm

انتخاب فیلدها

درس 3: انتخاب فیلدها

ساخت رکورد

درس 4: ساخت رکورد

ویرایش رکورد

درس 5: ویرایش رکورد

حذف رکورد

درس 6: حذف رکورد

اعتبارسنجی سفارشی

درس 7: اعتبارسنجی سفارشی

اعتبارسنجی چند فیلد

درس 8: اعتبارسنجی چند فیلد

پیام خطای مناسب

درس 9: پیام خطای مناسب

فرم آپلود فایل

درس 10: فرم آپلود فایل

فصل سوم: CRUD کامل

CRUD چیست؟

درس 1: CRUD چیست؟

صفحه فهرست

درس 2: صفحه فهرست

صفحه جزئیات

درس 3: صفحه جزئیات

صفحه ایجاد

درس 4: صفحه ایجاد

صفحه ویرایش

درس 5: صفحه ویرایش

صفحه حذف

درس 6: صفحه حذف

پیام موفقیت

درس 7: پیام موفقیت

Redirect بعد از عملیات

درس 8: Redirect بعد از عملیات

جلوگیری از حذف تصادفی

درس 9: جلوگیری از حذف تصادفی

تفکیک مسئولیت Viewها

درس 10: تفکیک مسئولیت Viewها

فصل چهارم: کاربران و احراز هویت

Authentication چیست؟

درس 1: Authentication چیست؟

Authorization چیست؟

درس 2: Authorization چیست؟

User داخلی Django

درس 3: User داخلی Django

ثبتنام

درس 4: ثبتنام

ورود

درس 5: ورود

خروج

درس 6: خروج

رمز عبور و Hash

درس 7: رمز عبور و Hash

محدودکردن صفحه به کاربر واردشده

درس 8: محدودکردن صفحه به کاربر واردشده

دسترسی به request.user

درس 9: دسترسی به request.user

تغییر رمز عبور

درس 10: تغییر رمز عبور

بازیابی رمز عبور

درس 11: بازیابی رمز عبور

پروفایل کاربر

درس 12: پروفایل کاربر

فصل پنجم: Custom User

چرا Custom User؟

درس 1: چرا Custom User؟

شروع پروژه با User سفارشی

درس 2: شروع پروژه با User سفارشی

AbstractUser

درس 3: AbstractUser

اضافهکردن فیلدهای پروفایل

درس 4: اضافهکردن فیلدهای پروفایل

تنظیم AUTH_USER_MODEL

درس 5: تنظیم AUTH_USER_MODEL

استفاده از User در Modelها

درس 6: استفاده از User در Modelها

ثبت User در Admin

درس 7: ثبت User در Admin

ساخت فرم ثبتنام سفارشی

درس 8: ساخت فرم ثبتنام سفارشی

نقش دانشآموز و مربی

درس 9: نقش دانشآموز و مربی

محدودکردن عملیات براساس نقش

درس 10: محدودکردن عملیات براساس نقش

فصل ششم: Permission در سایت

چه کسی چه کاری میتواند انجام دهد؟

درس 1: چه کسی چه کاری میتواند انجام دهد؟

مالکیت داده

درس 2: مالکیت داده

جلوگیری از ویرایش اطلاعات دیگران

درس 3: جلوگیری از ویرایش اطلاعات دیگران

Group

درس 4: Group

Permission داخلی Django

درس 5: Permission داخلی Django

Permission سفارشی

درس 6: Permission سفارشی

نقش Admin، Teacher و Student

درس 7: نقش Admin، Teacher و Student

بررسی دسترسی در View

درس 8: بررسی دسترسی در View

نمایش شرطی دکمهها

درس 9: نمایش شرطی دکمهها

امنیت Backend در برابر مخفیکردن ظاهری

درس 10: امنیت Backend در برابر مخفیکردن ظاهری

فصل هفتم: Class-Based Views

Function-Based View

درس 1: Function-Based View

Class-Based View

درس 2: Class-Based View

TemplateView

درس 3: TemplateView

ListView

درس 4: ListView

DetailView

درس 5: DetailView

CreateView

درس 6: CreateView

UpdateView

درس 7: UpdateView

DeleteView

درس 8: DeleteView

LoginRequiredMixin

درس 9: LoginRequiredMixin

سفارشیسازی QuerySet

درس 10: سفارشیسازی QuerySet

چه زمانی FBV مناسبتر است؟

درس 11: چه زمانی FBV مناسبتر است؟

چه زمانی CBV مناسبتر است؟

درس 12: چه زمانی CBV مناسبتر است؟

مرحله 9

مرحله 9: دوره هشتم: ساخت API با Django REST Framework

فصل اول: شروع DRF

API در معماری React و Django

درس 1: API در معماری React و Django

نصب DRF

درس 2: نصب DRF

اضافهکردن به Installed Apps

درس 3: اضافهکردن به Installed Apps

ساخت اولین API View

درس 4: ساخت اولین API View

Response

درس 5: Response

نمایش JSON

درس 6: نمایش JSON

Browsable API

درس 7: Browsable API

تست Endpoint

درس 8: تست Endpoint

طراحی URLهای API

درس 9: طراحی URLهای API

نسخهبندی مسیرها

درس 10: نسخهبندی مسیرها

فصل دوم: Serializer

Serialization چیست؟

درس 1: Serialization چیست؟

تبدیل Model به JSON

درس 2: تبدیل Model به JSON

تبدیل JSON به داده Python

درس 3: تبدیل JSON به داده Python

ساخت Serializer

درس 4: ساخت Serializer

Serializer Field

درس 5: Serializer Field

Validation

درس 6: Validation

خطاهای اعتبارسنجی

درس 7: خطاهای اعتبارسنجی

create

درس 8: create

update

درس 9: update

ModelSerializer

درس 10: ModelSerializer

فیلد فقطخواندنی

درس 11: فیلد فقطخواندنی

فیلد فقطنوشتنی

درس 12: فیلد فقطنوشتنی

فصل سوم: Request و Response

شیء Request در DRF

درس 1: شیء Request در DRF

request.data

درس 2: request.data

Query Parameter

درس 3: Query Parameter

Response

درس 4: Response

Status Code

درس 5: Status Code

GET Collection

درس 6: GET Collection

GET Detail

درس 7: GET Detail

POST

درس 8: POST

PUT

درس 9: PUT

PATCH

درس 10: PATCH

DELETE

درس 11: DELETE

مدیریت خطای Not Found

درس 12: مدیریت خطای Not Found

فصل چهارم: API Viewها

Function-Based API View

درس 1: Function-Based API View

Decoratorهای DRF

درس 2: Decoratorهای DRF

APIView

درس 3: APIView

GenericAPIView

درس 4: GenericAPIView

ListCreateAPIView

درس 5: ListCreateAPIView

RetrieveAPIView

درس 6: RetrieveAPIView

RetrieveUpdateDestroyAPIView

درس 7: RetrieveUpdateDestroyAPIView

انتخاب View مناسب

درس 8: انتخاب View مناسب

کاهش تکرار کد

درس 9: کاهش تکرار کد

حفظ خوانایی کد

درس 10: حفظ خوانایی کد

فصل پنجم: ViewSet و Router

ViewSet چیست؟

درس 1: ViewSet چیست؟

ModelViewSet

درس 2: ModelViewSet

Actionهای اصلی

درس 3: Actionهای اصلی

Router

درس 4: Router

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

درس 5: ساخت مسیرهای خودکار

محدودکردن عملیات

درس 6: محدودکردن عملیات

Action سفارشی

درس 7: Action سفارشی

ViewSet در برابر Generic View

درس 8: ViewSet در برابر Generic View

مزایا و معایب کد خودکار

درس 9: مزایا و معایب کد خودکار

بازنویسی API پروژه

درس 10: بازنویسی API پروژه

فصل ششم: ارتباط Modelها در API

نمایش Foreign Key

درس 1: نمایش Foreign Key

Primary Key Related Field

درس 2: Primary Key Related Field

String Related Field

درس 3: String Related Field

Serializer تودرتو

درس 4: Serializer تودرتو

Nested Read

درس 5: Nested Read

Nested Write

درس 6: Nested Write

ارتباط Course و Chapter

درس 7: ارتباط Course و Chapter

ارتباط Chapter و Lesson

درس 8: ارتباط Chapter و Lesson

ارتباط Lesson و Step

درس 9: ارتباط Lesson و Step

جلوگیری از پاسخهای بسیار حجیم

درس 10: جلوگیری از پاسخهای بسیار حجیم

فصل هفتم: Pagination، Filter و Search

چرا همه دادهها را یکجا برنگردانیم؟

درس 1: چرا همه دادهها را یکجا برنگردانیم؟

Pagination

درس 2: Pagination

Page Number Pagination

درس 3: Page Number Pagination

تعیین اندازه صفحه

درس 4: تعیین اندازه صفحه

فیلتر QuerySet

درس 5: فیلتر QuerySet

فیلتر براساس کاربر

درس 6: فیلتر براساس کاربر

Search

درس 7: Search

Ordering

درس 8: Ordering

ترکیب Filterها

درس 9: ترکیب Filterها

طراحی Query Parameterهای قابلفهم

درس 10: طراحی Query Parameterهای قابلفهم

مرحله 10

مرحله 10: دوره نهم: احراز هویت، مجوز و اتصال React به Django

فصل اول: احراز هویت API

تفاوت Authentication و Permission

درس 1: تفاوت Authentication و Permission

Session Authentication

درس 2: Session Authentication

Token Authentication

درس 3: Token Authentication

مفهوم Access Token

درس 4: مفهوم Access Token

مفهوم Refresh Token

درس 5: مفهوم Refresh Token

ارسال Credential

درس 6: ارسال Credential

دریافت کاربر جاری

درس 7: دریافت کاربر جاری

خروج و بیاعتبارسازی

درس 8: خروج و بیاعتبارسازی

انتخاب روش مناسب

درس 9: انتخاب روش مناسب

خطر نگهداری نامناسب Token

درس 10: خطر نگهداری نامناسب Token

فصل دوم: Permission

AllowAny

درس 1: AllowAny

IsAuthenticated

درس 2: IsAuthenticated

IsAdminUser

درس 3: IsAdminUser

Permission سفارشی

درس 4: Permission سفارشی

Object-Level Permission

درس 5: Object-Level Permission

مالکیت داده

درس 6: مالکیت داده

دسترسی دانشآموز

درس 7: دسترسی دانشآموز

دسترسی مربی

درس 8: دسترسی مربی

دسترسی مدیر

درس 9: دسترسی مدیر

تست Permission

درس 10: تست Permission

فصل سوم: ثبتنام و ورود

Endpoint ثبتنام

درس 1: Endpoint ثبتنام

اعتبارسنجی ایمیل یا شماره موبایل

درس 2: اعتبارسنجی ایمیل یا شماره موبایل

اعتبارسنجی رمز عبور

درس 3: اعتبارسنجی رمز عبور

Hash شدن رمز

درس 4: Hash شدن رمز

Endpoint ورود

درس 5: Endpoint ورود

Endpoint کاربر جاری

درس 6: Endpoint کاربر جاری

تغییر رمز

درس 7: تغییر رمز

فراموشی رمز

درس 8: فراموشی رمز

جلوگیری از افشای وجود حساب

درس 9: جلوگیری از افشای وجود حساب

محدودکردن درخواستهای ورود

درس 10: محدودکردن درخواستهای ورود

فصل چهارم: CORS و اتصال Frontend

Origin چیست؟

درس 1: Origin چیست؟

چرا مرورگر درخواست را مسدود میکند؟

درس 2: چرا مرورگر درخواست را مسدود میکند؟

CORS چیست؟

درس 3: CORS چیست؟

تنظیم Originهای مجاز

درس 4: تنظیم Originهای مجاز

اتصال React به Endpoint

درس 5: اتصال React به Endpoint

ارسال GET

درس 6: ارسال GET

ارسال POST

درس 7: ارسال POST

ارسال Token

درس 8: ارسال Token

نمایش خطای Backend

درس 9: نمایش خطای Backend

مدیریت Loading

درس 10: مدیریت Loading

مدیریت Logout

درس 11: مدیریت Logout

جداسازی API Client در React

درس 12: جداسازی API Client در React

فصل پنجم: قرارداد میان Frontend و Backend

API Contract چیست؟

درس 1: API Contract چیست؟

نامگذاری فیلدها

درس 2: نامگذاری فیلدها

ساختار موفقیت

درس 3: ساختار موفقیت

ساختار خطا

درس 4: ساختار خطا

خطای هر فیلد فرم

درس 5: خطای هر فیلد فرم

Pagination Contract

درس 6: Pagination Contract

تاریخ و منطقه زمانی

درس 7: تاریخ و منطقه زمانی

مقدار Null

درس 8: مقدار Null

تغییرات ناسازگار API

درس 9: تغییرات ناسازگار API

نسخهبندی API

درس 10: نسخهبندی API

فصل ششم: آپلود فایل

Multipart Form Data

درس 1: Multipart Form Data

آپلود تصویر پروفایل

درس 2: آپلود تصویر پروفایل

محدودیت اندازه فایل

درس 3: محدودیت اندازه فایل

بررسی نوع فایل

درس 4: بررسی نوع فایل

نامگذاری فایل

درس 5: نامگذاری فایل

حذف فایل قدیمی

درس 6: حذف فایل قدیمی

نمایش URL فایل

درس 7: نمایش URL فایل

امنیت فایل آپلودی

درس 8: امنیت فایل آپلودی

ذخیرهسازی محلی و ابری

درس 9: ذخیرهسازی محلی و ابری

تست آپلود فایل

درس 10: تست آپلود فایل

مرحله 11

مرحله 11: دوره دهم: معماری، تست و امنیت Django

فصل اول: معماری پروژه

مشکل فایل‌های بسیار بزرگ

درس 1: مشکل فایل‌های بسیار بزرگ

تقسیم پروژه به Appها

درس 2: تقسیم پروژه به Appها

تفکیک Domainها

درس 3: تفکیک Domainها

Model

درس 4: Model

Serializer

درس 5: Serializer

View

درس 6: View

Service

درس 7: Service

Selector یا Query Service

درس 8: Selector یا Query Service

Utility

درس 9: Utility

ساختار استاندارد پروژه‌های صنعتی

درس 10: ساختار استاندارد پروژه‌های صنعتی

فصل دوم: تست‌نویسی در Django

چرا تست می‌نویسیم؟

درس 1: چرا تست می‌نویسیم؟

انواع تست (Unit, Integration, E2E)

درس 2: انواع تست (Unit, Integration, E2E)

ابزار TestCase در جنگو

درس 3: ابزار TestCase در جنگو

تست Modelها

درس 4: تست Modelها

تست Viewها

درس 5: تست Viewها

تست API با APITestCase

درس 6: تست API با APITestCase

استفاده از Fixtures و Factory

درس 7: استفاده از Fixtures و Factory

تست احراز هویت و دسترسی‌ها

درس 8: تست احراز هویت و دسترسی‌ها

اندازه‌گیری پوشش تست (Code Coverage)

درس 9: اندازه‌گیری پوشش تست (Code Coverage)

اجرای خودکار تست‌ها

درس 10: اجرای خودکار تست‌ها

فصل سوم: امنیت بک‌اند

امنیت در وب چیست؟

درس 1: امنیت در وب چیست؟

حملات SQL Injection و راه‌های مقابله

درس 2: حملات SQL Injection و راه‌های مقابله

حملات XSS (Cross-Site Scripting)

درس 3: حملات XSS (Cross-Site Scripting)

حملات CSRF و توکن CSRF

درس 4: حملات CSRF و توکن CSRF

ایمن‌سازی متغیرهای محیطی (.env)

درس 5: ایمن‌سازی متغیرهای محیطی (.env)

مدیریت SECRET_KEY و داده‌های حساس

درس 6: مدیریت SECRET_KEY و داده‌های حساس

تنظیمات SSL/HTTPS

درس 7: تنظیمات SSL/HTTPS

محدودیت نرخ درخواست (Rate Limiting)

درس 8: محدودیت نرخ درخواست (Rate Limiting)

هدرهای امنیتی HTTP

درس 9: هدرهای امنیتی HTTP

چک‌لیست امنیت قبل از استقرار

درس 10: چک‌لیست امنیت قبل از استقرار

فصل چهارم: آماده‌سازی استقرار

تفاوت محیط توسعه و Production

درس 1: تفاوت محیط توسعه و Production

تنظیم DEBUG = False و پیامدهای آن

درس 2: تنظیم DEBUG = False و پیامدهای آن

مدیریت فایل‌های استاتیک با WhiteNoise

درس 3: مدیریت فایل‌های استاتیک با WhiteNoise

تنظیم WSGI و ASGI

درس 4: تنظیم WSGI و ASGI

استفاده از Gunicorn

درس 5: استفاده از Gunicorn

وب سرور Nginx به عنوان Reverse Proxy

درس 6: وب سرور Nginx به عنوان Reverse Proxy

پکیج‌بندی پروژه با Docker

درس 7: پکیج‌بندی پروژه با Docker

فایل Dockerfile و docker-compose

درس 8: فایل Dockerfile و docker-compose

اتصال دیتابیس PostgreSQL در Production

درس 9: اتصال دیتابیس PostgreSQL در Production

چک‌لیست نهایی استقرار

درس 10: چک‌لیست نهایی استقرار

مرحله 12

مرحله 12: دوره یازدهم: پروژه واقعی، مستندات و ورود به بازار کار

فصل اول: پروژه واقعی نهایی

انتخاب موضوع پروژه واقعی

درس 1: انتخاب موضوع پروژه واقعی

تحلیل نیازمندی‌ها و سناریوهای کاربر

درس 2: تحلیل نیازمندی‌ها و سناریوهای کاربر

طراحی مدل داده و ERD

درس 3: طراحی مدل داده و ERD

تعریف Endpointهای API

درس 4: تعریف Endpointهای API

پیاده‌سازی منطق کسب‌وکار

درس 5: پیاده‌سازی منطق کسب‌وکار

پیاده‌سازی احراز هویت و دسترسی‌ها

درس 6: پیاده‌سازی احراز هویت و دسترسی‌ها

نوشتن تست‌های جامع

درس 7: نوشتن تست‌های جامع

مستندسازی API با OpenAPI و Swagger (drf-spectacular)

درس 8: مستندسازی API با OpenAPI و Swagger (drf-spectacular)

ساخت فایل README و راهنمای راه‌اندازی

درس 9: ساخت فایل README و راهنمای راه‌اندازی

رفع اشکال و ریفکتور کدها

درس 10: رفع اشکال و ریفکتور کدها

فصل دوم: رزومه و بازار کار

ساخت نمونه‌کار حرفه‌ای (Portfolio)

درس 1: ساخت نمونه‌کار حرفه‌ای (Portfolio)

ساخت و تنظیم حساب GitHub

درس 2: ساخت و تنظیم حساب GitHub

مدیریت کد با کلون، برانچ و Pull Request

درس 3: مدیریت کد با کلون، برانچ و Pull Request

نوشتن رزومه استاندارد توسعه‌دهنده بک‌اند

درس 4: نوشتن رزومه استاندارد توسعه‌دهنده بک‌اند

مشخص کردن مهارت‌های اصلی و فریم‌ورک‌ها

درس 5: مشخص کردن مهارت‌های اصلی و فریم‌ورک‌ها

آماده‌سازی برای مصاحبه فنی

درس 6: آماده‌سازی برای مصاحبه فنی

حل مسائل الگوریتمی پایتون

درس 7: حل مسائل الگوریتمی پایتون

سوالات متداول مصاحبه Django و DRF

درس 8: سوالات متداول مصاحبه Django و DRF

نحوه کار فری‌لنسری و همکاری پروژه‌ای

درس 9: نحوه کار فری‌لنسری و همکاری پروژه‌ای

اخلاق حرفه‌ای، رشد مداوم و مسیر یادگیری آینده

درس 10: اخلاق حرفه‌ای، رشد مداوم و مسیر یادگیری آینده

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

🛠️ ساخت صفحه شخصی تعاملی یا کارت ویزیت دیجیتال

با استفاده از HTML و CSS و چند خط JavaScript ساده یک کارت ویزیت آنلاین با دکمه‌های تعاملی بساز.

مراحل اجرای پروژه آزمایشی:

  • یک فایل HTML بساز و نام و بیوگرافی خود را بنویس.
  • با CSS ظاهر دکمه‌ها و رنگ‌ها را زیبا کن.
  • با دکمه دارک‌مود یا انیمیشن ساده به آن رفتار تعاملی بده.

بازار کار و فرصت‌های شغلی برنامه نویسی بک اند

🎯 راه‌های ورود به بازار کار

  • پروژه فریلنسری کوچک
  • کارآموزی در شرکت‌های نوپا
  • ساخت نمونه‌کار در گیت‌هاب

⏱️ زمان و هزینه موردنیاز

۴ تا ۶ ماه یادگیری مداوم روزانه ۲ ساعت (با استفاده از منابع رایگان یا دوره‌های اقتصادی)

شیوه‌های کاری: امکان فریلنسری بسیار بالا، استخدام حضوری و دورکاری گسترده در ایران و جهان.

سوالات متداول و باورهای غلط درباره برنامه نویسی بک اند

خیر! این تصور یکی از باورهای اشتباهی است که افراد تازه‌کار درباره برنامه نویسی بک اند دارند. با آموزش گام‌به‌گام موازی و تمرین مستمر، هر علاقمندی می‌تواند بر مفاهیم تسلط پیدا کند.

خیر! این تصور یکی از باورهای اشتباهی است که افراد تازه‌کار درباره برنامه نویسی بک اند دارند. با آموزش گام‌به‌گام موازی و تمرین مستمر، هر علاقمندی می‌تواند بر مفاهیم تسلط پیدا کند.

footer-big-guy

به خبرنامه ما بپیوندید

اولین نفری باشید که از آخرین به‌روزرسانی‌ها، پیشنهادهای ویژه و موارد دیگر باخبر می‌شود.

کلیه حقوق مادی و معنوی این وب‌سایت متعلق به موازی می باشد.