AXV

Django REST Framework

Server-Side Rendering (SSR) va User-Side Rendering (CSR/USR) arxitekturasi

10-sinfAdvanced Python Back-end1-hafta · 1-dars

Dars rejasi

Veb arxitekturasi

Frontend va backend o'rtasidagi aloqa, HTTP so'rov va javob mexanizmi.

SSR va CSR tahlili

Server-side va user-side renderingning ishlash tartibi, afzallik va kamchiliklari.

REST & DRF

RESTful tamoyillari, JSON ma'lumotlar va Django REST Framework afzalliklari.

01

Veb arxitekturasi

Mijoz (Client) va Server muloqoti

Client va Server muloqoti

Veb-dasturlashda har qanday amal HTTP so'rovi va javobi orqali amalga oshadi

Client (Mijoz) Brauzer, Mobil ilova, Telegram Bot, Frontend 1. HTTP Request (GET, POST...) 2. HTTP Response (HTML yoki JSON) Server (Backend) Django / DRF, Biznes mantiq, MB

Asosiy HTTP metodlari

GET

Serverdan ma'lumotlarni so'rab olish. Ma'lumotlar bazasini o'zgartirmaydi.

POST

Serverga yangi ma'lumot yuborish (ro'yxatdan o'tish, yangi post qo'shish).

PUT / PATCH

Mavjud ma'lumotni to'liq (PUT) yoki qisman (PATCH) yangilash.

DELETE

Serverdagi ma'lumotni o'chirib tashlash.

02

Server-Side Rendering

Sahifaning serverda to'liq tayyorlanishi (Klassik Django)

SSR qanday ishlaydi?

Server ma'lumotlar bazasidan olib, HTML shablonni to'ldiradi va tayyor sahifani uzatadi

1. Brauzer GET /news/1/ So'rov yuboradi 2. Django Server DB dan ma'lumot oladi HTML shablonni to'ldiradi (render: HTML + CSS) 3. Tayyor sahifa Brauzer tayyor HTML ni ko'rsatadi

SSR ning tahlili

Afzalliklari

  • A'lo darajadagi SEO: Qidiruv botlari (Google, Yandex) to'liq HTML-ni darhol o'qiydi.
  • Tezkor birinchi ko'rinish: Foydalanuvchi sahifani bir zumda ko'radi.
  • Oddiy arxitektura: Frontend va backend bitta loyihada jamlangan.

Kamchiliklari

  • Sahifaning to'liq yangilanishi: Har bir havola bosilganda butun ekran oqarib qayta yuklanadi.
  • Server yuki yuqori: Server har bir so'rovga HTML fayl yig'ib berishi kerak.
  • Mobil ilovalar uchun yaroqsiz: iOS yoki Android ilovaga HTML kerak emas, toza ma'lumot kerak.
03

User-Side Rendering

Mijoz tomonida renderlash (CSR / SPA arxitekturasi)

USR / CSR qanday ishlaydi?

Server bo'sh HTML va JS beradi, brauzerdagi JS esa API orqali faqat JSON oladi

Brauzer (Frontend) React / Vue / JS Bo'sh HTML yuklangan DOM-ni JS chizadi fetch('/api/v1/posts/') JSON Javob: [{"id": 1, ...}] DRF Backend (API) HTML shablon YO'Q Faqat toza ma'lumot Serialization (JSON)

Nega butun dunyo API ga o'tmoqda?

SPA va Interaktivlik

Sahifa umuman qayta yuklanmaydi. Tugmani bosganda faqat kerakli qism o'zgaradi.

Serverga minimal yuk

Server har safar og'ir HTML yig'maydi. 100 KB o'rniga 3 KB toza JSON uzatiladi.

Bitta API — Hamma mijoz

Yaratilgan REST API-dan bir vaqtning o'zida Web, iOS, Android va Bot foydalanadi.

SSR va USR taqqoslash

Mezon Server-Side (SSR) User-Side (USR / CSR)
Render joyi Serverda (Django MTV) Brauzerda (JS / React)
SEO qulayligi Juda oson va yuqori Qo'shimcha sozlamalar talab etadi
Interaktivlik Past (sahifa qayta yuklanadi) Juda yuqori (SPA tajribasi)
Server yuklamasi Yuqori Minimal (faqat ma'lumot)
Boshqa ilovalar Mobil ilovalar ulana olmaydi Universal (Web, Mobile, Bot)

Qaysi birini tanlaymiz?

Loyiha talabiga qarab texnologiya tanlash mahorati

Tavsiya: Server-Side Rendering (yoki Next.js)

Yangiliklar portallari va ommaviy bloglar uchun qidiruv tizimlari (Google, Yandex) birinchi o'rinda turadi. Foydalanuvchi havolani bosganda matn darhol ko'rinishi shart.

Tavsiya: Django REST Framework + React / Vue

Buxgalteriya, maktab boshqaruv tizimi yoki tahliliy panelda SEO kerak emas. Bu yerda son-sanoqsiz jadvallar, filtrlar va tezkor hisob-kitoblar sahifa yangilanmasdan ishlashi kerak.

04

REST arxitekturasi va DRF

Standartlashtirilgan backend API tamoyillari

RESTful API ning 4 ta oltin qoidasi

  1. Client-Server ajratilganligi: Foydalanuvchi interfeysi va backend bir-biriga bog'liq bo'lmagan mustaqil tizimlar.
  2. Stateless (Holatsiz): Server har bir so'rovni mustaqil bajaradi. O'tgan so'rovlar holati sessiyada saqlanmaydi.
  3. Resurslarga asoslangan URL: URL fe'l emas, ot bo'lishi kerak: /api/v1/posts/ (amal metod bilan bildiriladi).
  4. Universal format: Ma'lumotlar platformalarga bog'liq bo'lmagan umumiy formatda (JSON) uzatiladi.

API qaytaradigan JSON namunasi

Oddiy, tushunarli va barcha dasturlash tillari taniydigan format

{
  "id": 101,
  "title": "Django REST Framework asoslari",
  "slug": "drf-asoslari",
  "status": "published",
  "category": {
    "id": 2,
    "name": "Backend dasturlash"
  },
  "views_count": 1420,
  "created_at": "2026-10-04T12:00:00Z"
}

Django REST Framework ekotizimi

Serializers

Django model obyektlarini JSON-ga va kelgan JSON-ni modelga o'tkazuvchi filtr/tarjimon.

ViewSets & Views

CRUD mantiqini birlashtiruvchi, biznes qoidalarni va ruxsatlarni boshqaruvchi qatlam.

Routers

URL marshrutlarni avtomatik ravishda REST standartida shakllantiruvchi dvigatel.

DRF ning eng kuchli jihati: Browsable API

Brauzerda API ni hech qanday qo'shimcha dastursiz to'g'ridan-to'g'ri testlash mumkin

http://127.0.0.1:8000/api/v1/posts/

HTTP 200 OK

Content-Type: application/json

[
  {
    "id": 1,
    "title": "Texnologiya yangiliklari"
  }
]

Atamalarni eslab qolamiz

Kartani bosib, uning ma'nosini tekshiring

SSR

Bosing va tekshiring

Server-Side

HTML serverda yig'ilib, tayyor holda brauzerga jo'natiladi.

USR / CSR

Bosing va tekshiring

Client-Side

Brauzerda JS ishlaydi, serverdan faqat JSON API olinadi.

Stateless

Bosing va tekshiring

Holatsiz

Har bir so'rov mustaqil, server o'tgan so'rovni eslab o'tirmaydi.

Tezkor bilim tekshiruvi

Qaysi holatda Django REST Framework (API) ishlatish eng to'g'ri qaror hisoblanadi?

To'g'ri! REST API ning eng katta kuchi — bitta yagona backend orqali barcha frontend mijozlariga (veb, mobil, bot) ma'lumot yetkazib berishidir.

Dasturchilar ko'p yo'l qo'yadigan xatolar

Xato: REST URL ichida amallarni yozish (GET /api/v1/delete_user/5/ xato!).
To'g'ri: URL faqat resurs nomi bo'lsin: DELETE /api/v1/users/5/.

Amaliy topshiriq 15 daqiqa

Oson 3 ta xizmat (masalan: Kundalik.com, Instagram, Wikipedia) uchun SSR yoki USR mos kelishini aniqlang.
O'rta Kutubxona API tizimi uchun 4 ta asosiy endpoint yozing (GET, POST, PUT, DELETE).
Qiyin Bitta mahsulot uchun to'liq JSON ma'lumotlar tuzilmasini (id, title, price, category) shakllantiring.
AXV

Darsni yakunlaymiz

Keyingi darsda: DRF loyiha qurish, PostgreSQL sozlash va NewsPortal arxitekturasini yaratamiz!

SSR (HTML serverda) CSR (JSON API + JS) REST arxitekturasi Django REST Framework