Tarkibga o'tish

Django β€” 0 dan Expertgacha

Bu kitob Python asoslarini biladigan o'quvchini Django bo'yicha noldan ishonchli full-stack veb-dasturchi darajasiga olib chiqadi. Birinchi urls.py/views.py dan boshlab β€” template tizimi, modellar va ORM, admin panel, formalar, class-based views, autentifikatsiya, Django REST Framework (DRF) bilan to'liq REST API, signallar, keshlash, async va Celery, testlash, xavfsizlik va production deploy orqali β€” yakuniy kapston loyihaga qadar. Har bir mavzu sodda tushuntirish, Django 6.0.6 da haqiqiy ishga tushirib tekshirilgan kod va amaliy loyihalar bilan ochib beriladi.

Django 6.0 β€” full-stack: bir tomondan server tomonida HTML render qiluvchi templates (an'anaviy veb-ilovalar), ikkinchi tomondan DRF orqali zamonaviy SPA/mobil mijozlar uchun REST API. Bu kitobda ikkala qatlam ham qamraladi.

Qoida: Django o'qib emas β€” YOZIB o'rganiladi. Har bir misolni o'zingiz tering, python manage.py runserver bilan ishga tushiring va brauzer/curl orqali sinab ko'ring. Xato chiqsa β€” aynan shu yerda haqiqiy o'rganish boshlanadi.

Bu kitob siz Python asoslarini (o'zgaruvchi, funksiya, sinf, dekorator, virtual muhit, pip) bilasiz deb hisoblaydi. Python yangi bo'lsa, avval Python β€” 0 dan Expertgacha kitobini o'qing.


Qanday o'qish kerak

  1. Boblarni tartib bilan o'qing (01 -> 02 -> ...). Har biri oldingisiga tayanadi, sakramang.
  2. 02-bobda virtual muhit yaratib, Django'ni o'rnatib, har bir misolni o'z kompyuteringizda ishga tushiring.
  3. Amaliy loyihalarni o'zingiz qaytadan yozing β€” ko'chirib qo'yish bilan Django o'rganilmaydi.
  4. ORM va DRF kabi mavzular amaliyotsiz mavhum tuyuladi β€” har bir QuerySet va endpointni o'zingiz sinang.

Talab

Kerak Daraja
Kompyuter (Windows / macOS / Linux) Shart
Python 3.12+ (Django 6.0 uchun) Shart
Python asoslari Shart
Terminal va virtual muhit bilan tanishlik Foydali
HTML/CSS asoslari Foydali
Oldingi veb tajribasi Shart emas

Mundarija

I qism β€” Tanishuv

# Bob Mavzu
01 Django bilan tanishuv Django nima, "batteries included" falsafasi, MVT arxitekturasi, qaerda ishlatiladi va nega tanlanadi.
02 O'rnatish va birinchi loyiha Virtual muhit, pip install django, django-admin startproject, manage.py, startapp, loyiha tuzilmasi va birinchi runserver.
03 View va URL marshrutlash Function-based views, HttpRequest/HttpResponse, urls.py, URL parametrlari va path konverterlari, include, nomlangan URL va reverse.
04 Template tizimi (DTL) Django Template Language: o'zgaruvchilar, teglar, filtrlar, {% extends %}/{% block %} meros, {% include %}, kontekst va template render.

II qism β€” Modellar va ORM

# Bob Mavzu
05 Modellar va migratsiya Modellar va maydon turlari, makemigrations/migrate, migratsiyalar qanday ishlaydi, baza sxemasi va modeldan jadvalga.
06 ORM va QuerySet so'rovlar objects manager, filter/exclude/get, lookuplar, order_by, lazy QuerySet, Q va F obyektlari, agregatsiya.
07 Model munosabatlari ForeignKey, OneToOneField, ManyToManyField, teskari munosabatlar (related_name), munosabatlar bo'ylab so'rov.
08 Admin panel Django admin'ni yoqish, model ro'yxatdan o'tkazish, ModelAdmin sozlamalari (list_display, search_fields, inlines), maxsuslashtirish.
09 Ilg'or ORM va optimizatsiya N+1 muammosi, select_related/prefetch_related, annotate, values/only/defer, transaction va so'rovlarni profillash.

III qism β€” Veb qatlam

# Bob Mavzu
10 Formalar va validatsiya forms.Form va ModelForm, maydon validatsiyasi, clean metodlar, formani render qilish va CSRF himoyasi.
11 Class-based views (CBV) FBV vs CBV, generic views (ListView, DetailView, CreateView, UpdateView, DeleteView), mixinlar va metodlarni override qilish.
12 Static, media va to'liq layout staticfiles, STATIC_URL/STATICFILES_DIRS, collectstatic, foydalanuvchi yuklagan media fayllar va to'liq sayt layouti.
13 Autentifikatsiya va ruxsatlar User modeli, login/logout/register, login_required, permissions va guruhlar, parol boshqaruvi.
14 Sessiyalar, messages va middleware Session framework, messages tizimi, middleware qanday ishlaydi va o'z middleware'ingizni yozish.

IV qism β€” REST API (DRF)

# Bob Mavzu
15 DRF kirish va serializers Django REST Framework o'rnatish, Serializer va ModelSerializer, validatsiya, APIView bilan birinchi endpoint.
16 DRF ViewSets va routers ViewSet/ModelViewSet, DefaultRouter bilan avtomatik URL, kamroq kod bilan to'liq CRUD API.
17 DRF autentifikatsiya (Token, JWT) API autentifikatsiya: TokenAuthentication, JWT (simplejwt), permission classes va himoyalangan endpointlar.
18 DRF filtrlash, paginatsiya, nested django-filter, qidiruv va saralash, paginatsiya stillari, nested serializers va munosabatlarni API'da ko'rsatish.

V qism β€” Ilg'or mavzular

# Bob Mavzu
19 Signallar va custom mantiq pre_save/post_save va boshqa signallar, receiver, custom manager va QuerySet, model metodlari bilan biznes mantiq.
20 Keshlash va performance Cache framework, per-view va low-level kesh, Redis backend, cached_property, performance o'lchash va tezlashtirish.
21 Async va fon vazifalari Django async views va ORM, ASGI, Celery bilan fon vazifalari, broker (Redis) va vaqt talab qiladigan ishlarni navbatga qo'yish.

VI qism β€” Production va kapston

# Bob Mavzu
22 Testlash TestCase, test client, model/view/API testlari, fixtures va factory, coverage va TDD yondashuvi.
23 Settings, env va xavfsizlik settings.py ni muhitlarga bo'lish, .env va maxfiy kalitlar, DEBUG/ALLOWED_HOSTS, OWASP va Django xavfsizlik sozlamalari.
24 Deployment (production) Gunicorn/Uvicorn, Nginx, collectstatic, PostgreSQL, environment, Docker va production'ga chiqarish.
25 Yakuniy kapston loyiha Butun kitobni bog'laydigan production-darajali to'liq loyiha: modellar + DRF API + auth + testlar + deploy. "0 dan expertgacha" yo'lining yakuni.

Muallif

Oqil Imomnazarov β€” ioqil.uz Β· Telegram Β· YouTube

Kitob bepul tarqatiladi (CC BY-NC-SA 4.0). Savdo qilish taqiqlanadi.