Django loyihani ishga tushirib olish uchun namuna

Django framework-da qilingan loyihani cPanel-ga deploy qilish bo'yicha namunaviy qo'llanma

cPanel v136.0.24

Ushbu maqola sizga django loyihangizni bizning hostingda, cPanel boshqaruv paneli orqali ishga tushirib olish uchun kichik qo'llanma vazifasini bajaradi.

Maqola quyidagi qadamlarni o'z ichiga oladi:

  1. Namunaviy loyiha bilan tanishib chiqish
  2. Loyihani alohida hostingda ishga tushirib olish - deployment on production
  3. Namunaviy loyihani hostingdan o'chirib tashlash

Jarayonni diqqat bilan kuzating va qadamlarni birgalikda, to'g'ri tartib asosida bajaring, zero shu asnoda sizda Django loyihani deploy qilish borasida yaxshi tasavvur paydo bo'ladi va ushbu amaliyotni siz keyinchalik o'z loyihangizga ham qo'llaysiz.

Namunaviy loyiha

Biz tanlab olgan namunaviy loyiha "Link Vault", ya'ni Foydali havolalar ombori deb nomlanadi. Unda biz hovala uchun kategoriya va havolaning o'zini ham qo'shishni ko'rib chiqamiz.

Loyiha oddiy ikki veb sahifaga ega(havolalar ro'yxati va havola qo'shish formasi) va django har bir kategoriya va havola bazaga qo'shilishini nazorat qiladi.

  1. Loyiha (project) nomi. Ya'ni asosiy loyiya sozlamalari, jumladan settings.py, wsgi.py fayllari joylashadigan loyihaning asosiy papkasi.
    Bu papka bizda loyihani yaratish buyrug'i asnosida paydo bo'lgan va biz unga taomilga muvofiq core deb nom berganmiz:
    Django
    django-admin startproject core .
    
  2. "links" papkasi bu ilova papkasi hisoblanadi. Unda biz foydali havolalar yaratish, boshqarish bo'yicha barcha konfiguratsiya fayllarini saqlaymiz. Uni yaratishda ishlatilgan buyruq amali:
    Django
    python manage.py startapp links
    
  3. Loyiha veb sahifalari fayllari joylashadigan papka
  4. venv bu virtual muhit papkasi hisoblanadi. Unda bizning loyihaga tegishli barcha kutubxonalar joylashgan bo'ladi. Bu papka hostingga yuklanishi shart emas. Hostingda muhit papkasi butunlay boshqacha yaratiladi va boshqa yerda saqlanadi. Buni keyinroq ko'rib chiqamiz. Virtual muhit yaratilishi va aktivlashtirilishida ishlatiladigan buyruqlar:
    python -m venv venv
    .\venv\Scripts\activate
    
  5. .env bu barcha o'ta maxfiy saqlanadigan muhit kalitlari, parollari saqlanadigan fayl
  6. requirements.txt fayli bu biz uchun barcha kerakli kutubxonalarni kerakli versiyalari bilan bir fayda saqlash va u orqali o'rnatib olish uchun qulay vosita hisoblanadi. Faylning yaratilish holati:
    pip freeze > .\requirements.txt
    

Loyiha to'laligicha sizga taqdim qilinadi, iltimos, uni ko'rib, o'rganib chiqing:

Namunaviy loyihani .zip formatida yuklab olish

django-sample.zip

Loyiha papkasini terminal orqali oching va:

Windows PowerShell
Linux bash
py -m venv venv
.\venv\Scripts\activate
py .\manage.py runserver

Loyihani serverga yuklash

Birinchi o'rinda qilinadigan ishlar tartibini rejalashtirib olamiz:

  1. Loyiha uchun alohida subdomen yaratib olamiz
  2. Loyiha bazasi va baza foydalanuvchisini yaratib olamiz (MySQL)
  3. "Setup Python App" interfeysi orqali yangi Python Environment(muhit) yaratib olamiz
  4. subdomen papkasiga loyihaning .zip formatidagi arxivini yuklaymiz
  5. Konfiguratsiya fayllarini production uchun moslab chiqamiz
  6. cPanel terminali orqali barcha kerakli kutubxonalarni o'rnatib olamiz; yangi bazaga django strukturasini migratsiya qilamiz
  7. "Python App" ni qayta ishga tushiramiz

Tayyor bo'lsangiz, boshlaymiz!

1. Subdomen yaratish

Biz loyiha uchun bizdagi hostingda django.scroll.uz subdomenini yaratib olamiz.

2. Ma'lumotlar bazasi va uning foydalanuvchisini yaratish

cPanelning "Database Wizard" interfeysining o'zi sizga MySQL bazasi, uning foydalanuvchisini yaratish va baza uchun foydalanuvchiga kerakli ruxsatlarni berish bo'yicha qadamma-qadam ko'rsatib turadi.

  1. Birinchi qadamda bazaga nom bering. Biz uni scroll_django deb nomlaymiz (sizda scroll_ qismi hosting username dan olinadi va boshqacha bo'ladi)
  2. Keyingi qadamda foydalanuvchi yaratasiz. Biz uni scroll_django-user deb nomlaymiz (bu yerda ham sizning foydalanuvchingiz boshqacha nomlanadi, sababi sizda uning nomi boshlanishi scroll_ bo'lmaydi). Shuningdek, unga kuchli parol sozlab, o'zingizda saqlab olasiz
  3. Uchinchi qadamda esa siz foydalanuvchi uchun bazadan foydalanish ruxsatlarini belgilaysiz, biz "ALL PRIVILEGES" deb belgilaymiz va shu tariqa bu user bazadan foydalanishning to'liq boshqaruviga ega bo'ladi.

Baza nomi, baza foydalanuvchisi nomi va uning parolini o'zingizda vaqtincha saqlab oling.

3. Python App yaratish

cPanelning "Setup Python App" interfeysini ochamiz va "+ Create Application" tugmasini bosamiz.

Paydo bo'ladigan formani quyidagicha to'ldiramiz:

  1. Birinchi o'rinda loyihamizga mos keladigan Python versiyasini tanlaymiz.
  2. So'ng loyiha root papkasini, ya'ni loyiha qaysi papkadan ishga tushishini tanlash kerak bo'ladi. Biz bu maydonga django.scroll.uz deb kiritdik, sababi, biz xuddi shu nomda subdomen yaratganimizda cPanel unga mos holda papka yaratadi. Yana ham soddaroq qilib tushuntirsak,
    • biz django.scroll.uz subdomenini yaratdik;
    • cPanel bizning user papkamiz: /home/scroll/ ichida "django.scroll.uz" nomli papka yaratdi
  3. Bu qismda biz loyihamiz aynan qaysi domenda ishlashi kerakligini tanlaymiz
  4. Har ehtimolga qarshi, log faylni ham belgilab beramiz. Uni maxsus "logs" papkasida bo'lishini va django.log deb nomlanishini xohladik.
  5. Kerakli bo'limlar to'ldirilgach "Create" tugmasini bosamiz.

Python App yaratiladi va unda ahamiyat qaratilishi kerak bo'lgan uch qism mavjud:

  1. "Application startup file" va "Application Entry point" avtomatik to'ldirildi. Aynan shu sabab biz bu qismlarni yaratish jarayonida to'ldirmagan edik.
  2. Ilovani to'xtatish va qayta ishga tushirish amallari mavjudligiga ahamiyat berib qo'yaratganimizda
  3. Yuqori qismda esa Vistual muhitga kirib, uni aktivlashtirib olish uchun tayyor buyruq kodi beriladi. Uning ustida sichqonchani bosish orqali saqlab olsangiz bo'ladi. Hozircha uni biror joyga saqlab olib turing.

4. Loyihani hostingga yuklash

Bunda biz cPanel-ning "File Manager" interfeysidan foydalanamiz.

Loyiha papkasiga kirib olamiz va "Upload" tugmasini bosamiz
"Select File" tugmasini bosamiz va arxivlangan loyihamizni tanlab, yuklaymiz
Yuklash yakunlangach "Go back ..." havolasini bosish orqali "File Manager" interfeysiga qaytamiz
Yuklangan arxiv faylimizni tanlaymiz, "Extract"(arxivdan chiqarish) tugmasini bosamiz va tasdiqlaymiz
Yashirin fayllarimiz ham ko'rinishi uchun "Settings" tugmasini bosamiz va "Show Hidden Files" funksiyasini yoqib qo'yamiz
Shu tariqa loyihani kerakli papkaga yuklab oldik. Istasangiz arxiv(.zip) faylini o'chirib yuboraverasiz

5. Konfiguratsiya fayllarini "production" uchun qayta sozlash

Birinchi o'rinda .env faylimizni tahrirlab olishimiz kerak. Buning uchun fayl ustida sichqoncha o'ng tugmasini bosib(context menu), "Edit" opsiyasini tanlash kifoya:

.env faylini biz quyidagicha tahrirladik:

Siz esa,

  • "ALLOWED_HOSTS"ni o'zingizdagi domen(yoki subdomen)ga;
  • "DB_NAME"-ni o'zingizdagi baza nomiga;
  • "DB_USER" va "DB_PASSWORD"-larni o'zingizdagi baza foydalanuvchisi nomi va paroliga sozlab qo'yishingiz lozim.

Keyingi sozlanishi kerak bo'lgan fayl esa, cPanel yaratgan Python App uchun passanger konfiguratsiya fayli hisoblanadi. Bizning loyihamizda loyiha papkasiga core deb nom berilgan va u uchun bizda tayyor passanger fayli konteksti mavjud - "sample__passanger_wsgi.py".

Manashu kontekstni siz ham passanger_wsgi.py fayliga ko'chiring.

6. Kutubxonalarni o'rnatish va bazani migratisya qilish

cPanel-ning "Terminal" interfeysi orqali "requirements.txt" faylimizdan foydalangan holda barcha kerakli kutubxonalarni o'rnatib olamiz:

Shuningdek, python3 manage.py migrate buyrug'i orqali bazani sozlamalarini yangi MySQL bazasiga migratsiya qilib olishingiz va python3 manage.py createsuperuser buyrug'i orqali admin user yaratib olishingiz mumkin.

7. Ilovani qayta ishga tushirish

Bizning barcha qilgan o'zgarishlarimiz amal qila boshlashi uchun Python App ni qayta ishga tushirish(restart) kerak bo'ladi. Buning uchun cPanel-ning "Setup Python App" interfeysini qayta ochib olamiz va ilovamizni qayta ishga tushirish tugmasini bosamiz:


Shu tariqa loyihani hosting serverga yuklash jarayoni yakunlanadi. Uni alohida, maxsus yaratilgan subdomenimiz orqali ochib, tekshirib ko'ramiz:

Namunaviy loyihani o'chirib, hostingni undan tozalash

Endi siz Django loyihasini hosting serverda ishga tushirib olishni bilasiz. Bu bilan sizni tabriklaymiz!

— Ammo, chindan ham bu hammasimi? — Yo'q. Siz nafaqat loyihani to'g'ri yuklashni, balki uni to'g'ri tartibda o'chirishni, hostingdan bu loyihani tozalab olishni ham tartibini bilishingiz lozim.

Sababi, Python App loyihalarini noto'g'ri o'chirish tufayli turli xil qiyinchiliklarga duch kelgan mijozlarimiz bo'lgan.

Python loyihasini o'chirishning to'g'ri tartibi:

Birinchi o'rinda Virtual Muhim o'chirilishi kerak

cPenel-ning "Setup Python App" interfeysini oching va ilova uchun "stop" tugmasini bosing

So'ng "Destroy" tugmasini bosib, uni o'chiring

Keyingi amal bu subdomenni o'chirish
Python App ni o'chirish ham, domenni o'chirish ham loyiha papkasini o'chirmaydi. Shuning uchun eng oxirida "File Manager" orqali loyiha papkasini o'chiramiz:
Shuningdek, cPanel-ning "Manage My Databases" interfeysidan ma'lumotlar bazasi va u uchun yaratilgan foydalanuvchini ham o'chirib yuborishni unutmang.