Ushbu eng yaxshi amaliyot bilan Django loyihangizni takomillashtiring

Django veb-ilovalarni yaratish uchun kuchli, ochiq manbali, Python asosidir. So'nggi ikki yil ichida uning mashhurligi oshdi va u allaqachon etuk bo'lib, uning orqasida katta jamoada keng qo'llaniladi.

Python-ga asoslangan veb-ilovalarni (Frask va Piramida kabi) yaratishga mo'ljallangan boshqa ramkalar orasida Django eng mashhur hisoblanadi. Python 2.7 va Python 3.6-ning ikkalasini ham qo'llab-quvvatlaydi. Ammo ushbu maqola paytida Python 2.7 hali hamjamiyat, uchinchi tomon paketlari va onlayn hujjatlar nuqtai nazaridan eng qulay versiya hisoblanadi. Django to'g'ri ishlatilganda xavfsiz va yuqori darajada moslashuvchanlikni ta'minlaydi. Bu Python-dan foydalangan holda dasturiy ta'minotni ishlab chiqishda borish usulidir.

Google Trends uchta eng mashhur Python veb-ishlab chiqarish ramkalari

Tajribali Python va Django ishlab chiqaruvchisi sifatida men bir necha yillar davomida o'rgangan va to'plangan Django sozlash bo'yicha eng yaxshi amaliyotlarni sizlarga aytib beraman. Kamaringiz ostida Django-ning bir nechta loyihasi mavjudmi yoki siz birinchi ishingizni noldan boshlamoqchisiz, bu erda tasvirlangan eng yaxshi amaliyotlar sizga yo'lda yaxshiroq ilovalarni yaratishga yordam berishi mumkin.

Men ushbu maqolani juda amaliy fikrlardan yozdim, shunda siz darhol o'zingizning ishlab chiqarish asboblar qutingizga ba'zi vositalarni qo'shishingiz mumkin. Siz hatto keyingi loyihalaringiz uchun rivojlangan maxsus Django qozonini yaratishingiz mumkin.

Ushbu maqolaning maqsadi uchun siz Linux Ubuntu kompyuteridan foydalanmoqdasiz deb o'ylayman. Maqola davomida ba'zi kod satrlari $ belgisi bilan boshlanadi. Bular ushbu chiziqni terminalga kiritish kerakligini ta'kidlash uchun ishlatiladi. $ Belgisisiz satrni nusxalashga ishonch hosil qiling.

Virtual muhit

Python-ga asoslangan dasturlarni ishlab chiqishda uchinchi tomon paketlaridan foydalanish doimiy ish hisoblanadi. Ushbu paketlar tez-tez yangilanadi, shuning uchun ularni tartibga solish juda muhimdir. Bitta mahalliy mashinada ko'proq loyihalarni ishlab chiqishda har bir paketning joriy versiyasini kuzatib borish qiyinlashadi. Turli loyihalar uchun bitta paketning turli xil versiyalaridan foydalanish mumkin emas. Bundan tashqari, bitta loyihada paketni yangilash boshqa funktsiyani buzishi mumkin va aksincha.

Python virtual muhiti juda qulay. Virtual muhitni o'rnatish uchun:

$ apt-get yangilanishi
$ apt-get python-pip o'rnatish python-dev o'rnatish-zarur
Agar siz keyingi satrda xato ko'rsangiz, $ LC_ALL = "en_US.UTF-8" # zarur bo'lishi mumkin.
$ pip o'rnatish - yangilash quvuri
$ pip o'rnatish - virtualenv yangilash
$ mkdir ~ / .virtualenvs
$ pip virtualenvwrapper o'rnatadi
$ eksport WORKON_HOME = ~ / .virtualenvs
$ nano ~ / .bashrc

Ushbu qatorni fayl oxiriga qo'shing:

. /usr/local/bin/virtualenvwrapper.sh

Keyin bajaring:

Dollarni tashkil etadi. .bashrc

O'rnatgandan so'ng, loyihangiz uchun yangi virtual muhitni yozing:

$ mkvirtualenv project_name

Virtual muhitingiz kontekstida bo'lganingizda, terminalga prefiks qo'shilganini sezasiz, masalan:

(project_name) of @ o'yin maydoni: ~ $

Virtual muhitni o'chirish (chiqish) va mahalliy mashinangizning asosiy Python kontekstiga qaytish uchun quyidagilardan foydalaning:

$ o'chirish

Virtual muhit kontekstini faollashtirish (boshlash) uchun quyidagilardan foydalaning:

$ workon project_name

Mahalliy mashinangizda mavjud bo'lgan virtual muhitlarning ro'yxati uchun quyidagilardan foydalaning:

$ lsvirtualenv

Loyihaviy bog'liqliklaringizni (paketlaringizni) kompyuteringizda virtual muhitda saqlash ularni izolyatsiya qilingan muhitda saqlashga imkon beradi. Siz ularni faqat bitta (yoki bir nechta) loyihalar uchun ishlatasiz. Yangi virtual muhitni yaratishda, unda hech qanday paket o'rnatilmagan yangi muhitni yaratasiz. Keyin siz foydalanishingiz mumkin, masalan:

(project_name) $ Django-ni o'rnatish

virtual muhitda Djangoni o'rnatish uchun, yoki:

(project_name) $ pip o'rnatish Django == 1.11

Django-ning 1.11-versiyasini o'rnatish uchun faqat atrof-muhitdan kirish mumkin.

Python-ning asosiy tarjimoni ham, kompyuteringizdagi boshqa virtual muhit ham siz o'rnatgan yangi Django to'plamiga kira olmaydi.

Runnerver buyrug'ini sizning virtual muhitingizdan foydalanish uchun, virtual muhit kontekstida esa quyidagilardan foydalaning:

(project_name) $ cd / path / to / django / project
(project_name) $ ./manage.py runserver

Xuddi shunday, Python tarjimoniga virtual muhit ichidan kirganda, kiriting:

(project_name) $ python

U atrof-muhit ichida siz o'rnatgan paketlardan foydalanish huquqiga ega.

Talablar

Talablar bu sizning loyihangiz ishlayotgan Python paketlari (qaramliklar) ro'yxati, shuningdek har bir paketning versiyasi. Bir talab.txt fayliga misol:

diktoxml == 1.7.4
Django == 1.11.2
h5py == 2.7.0
matplotlib == 2.0.2
numpy == 1.13.0
Yostiq == 4.1.1
psikopg2 == 2.7.1
pyparsing == 2.2.0
python-dateutil == 2.6.0
pytz == 2017.2
olti == 1.10.0
xmltodict == 0.11.0

Talablaringiz.txt faylini yangilab turish boshqa ishlab chiquvchilar bilan to'g'ri hamkorlik qilish uchun juda muhimdir. Shuningdek, bu sizning ishlab chiqarish muhitingizni to'g'ri sozlash uchun muhimdir. Ushbu fayl sizning kod omboringizga kiritilganida, virtual muhitda o'rnatilgan barcha paketlarni terminalda bitta satrni bajarish orqali yangilashga imkon beradi. Shunda siz yangi ishlab chiquvchilarni tezda ishga tushirishingiz mumkin.

Yangi requirements.txt yaratish yoki yangisini yangilash uchun, virtual muhitingizdan foydalaning:

(project_name) $ pip muzlatish> requirements.txt

Sizga qulay bo'lishi uchun ushbu buyruqni Git omboringiz tomonidan kuzatiladigan papkada bajarganingizga ishonch hosil qiling. Bu kodning boshqa holatlariga, shuningdek, requirements.txt fayliga kirish huquqini beradi.

Agar yangi dasturchi jamoaga qo'shilsa yoki талаботи.txt faylida ko'rsatilgan paketlardan foydalanib yangi muhitni sozlamoqchi bo'lsangiz, virtual muhit sharoitida bajaring:

(project_name) $ cd / path / to / requirements / fayl
(project_name) $ pip o'rnatish -r requirements.txt

Faylda ko'rsatilgan barcha talablar darhol sizning virtual muhitingizda o'rnatiladi. Eskirgan versiyalari yangilanadi va yangi versiyalari талаботи.txt-ning aniq ro'yxatiga moslashtiriladi. Ehtiyot bo'ling - siz hali ham hurmat qilishni xohlaydigan muhit o'rtasida farqlar bo'lishi mumkin.

Men ushbu buyruqlarni ish oqimingizga qo'shishni maslahat beraman. Kodni omborga kiritishdan oldin, talablar.txt faylini yangilang va kodni ombordan tortib olingandan so'ng, talab.txt faylini o'rnating.

Kredit: https://www.djangoproject.com/

Yaxshi settings.py konfiguratsiyasi

Django juda oddiy, ammo foydali settings.py fayli bilan ta'minlanmagan. Bu sizning loyihangiz uchun asosiy va eng foydali konfiguratsiyalarni belgilaydi. Settings.py fayli juda sodda. Ammo ba'zida, guruhda ishlaydigan dasturchi sifatida yoki ishlab chiqarish muhitini yaratishda sizga bir nechta asosiy settings.py fayli kerak bo'ladi.

Bir nechta sozlash fayllari har bir muhit uchun moslashtirilgan konfiguratsiyani alohida-alohida aniqlashga imkon beradi:

ALLOWED_HOSTS # ishlab chiqarish muhiti uchun
DEBUG
Bitta jamoada turli xil dasturchilar uchun DATABASES #

Sizga settings.py faylingizni sozlash bo'yicha kengaytirilgan yondashuv bilan tanishtirishga ijozat bergaysiz. Bu sizga turli xil versiyalarni saqlashga va istalgan vaqtda va har qanday muhitda kerakli versiyadan foydalanishga imkon beradi.

Birinchidan, settings.py fayl yo'liga o'ting:

(project_name) $ cd / path / to / settings / fayl

Keyin sozlamalar deb nomlangan yangi modul yarating (modul bu __init__.py faylini o'z ichiga olgan papka):

(project_name) $ mkdir sozlamalari

Endi settings.py faylini base.py deb o'zgartiring va uni o'zingiz yaratgan yangi modul ichiga joylashtiring:

(project_name) $ mv settings.py settings / base.py

Ushbu misol uchun siz o'zingizning ishlab chiqarish muhitingiz uchun bitta va sozlash faylini sozlashni xohlaysiz deb taxmin qilaman. Bitta guruhdagi turli xil ishlab chiquvchilar turli xil sozlamalar fayllarini aniqlash uchun aynan bir xil yondashuvdan foydalanishlari mumkin.

Sizning rivojlanish muhiti uchun quyidagilar yarating:

(project_name) $ nano sozlash / development.py

Keyin kiriting:

.base importidan *
DEBUG = To'g'ri

va Ctrl + O, Enter va keyin Ctrl + X tugmalarini bosib, faylni saqlang.

Ishlab chiqarish muhiti uchun quyidagilar yarating:

(project_name) $ nano sozlamalari / production.py

va turi:

.base importidan *
DEBUG = noto'g'ri
ALLOWED_HOSTS = ['app.project_name.com',]

Endi, ma'lum bir muhit sozlamalarini qo'shish yoki yangilashni xohlaganingizda, uni o'zingizning sozlash faylida osongina qilishingiz mumkin.

Sizni qiziqtirishi mumkin - Django har bir muhitga qanday sozlamalar faylini yuklashni qaerdan biladi? Bu __init__.py faylidan foydalaniladi. Django serverni ishga tushirishda foydalanadigan settings.py-ni qidirganda, masalan, u endi settings.py faylini emas, balki sozlash modulini topadi. Modomiki, __init__.py faylini o'z ichiga olgan modul bo'lsa, Djangoga kelsak, aynan shu narsa. Django __init__.py faylini yuklaydi va unda yozilganlarni bajaradi.

Shuning uchun, biz __init__.py faylining ichida qanday sozlash faylini yuklashni xohlayotganimizni aniqlashimiz kerak:

(project_name) $ sozlash / __ tashabbusi__.py

va keyin, masalan, ishlab chiqarish muhiti uchun:

ishlab chiqarish importidan *

Shu tarzda Django har safar boshlanganda barcha base.py va production.py sozlamalarini yuklaydi. Sehrli?

Endi __init__.py-ni sizning gigignore faylingizda saqlash uchun faqat bitta konfiguratsiya qoladi, shunda u itarish va tortishlarga kiritilmaydi. Yangi muhit yaratgandan so'ng, sozlamalar moduli ichida yangi __init__.py faylini yaratishni unutmang. Keyin avvalgi kabi talab qilingan sozlamalar faylini import qiling.

Ushbu maqolada biz Django loyihangizni yaxshiroq sozlash uchun uchta eng yaxshi amaliyotni ko'rib chiqdik:

  • Virtual muhitda ishlash
  • Citizens.txt faylini yangilab turish va undan doimiy ravishda ish oqimida foydalanish
  • Loyihani yaxshiroq sozlash qatorini o'rnatish

Siz oxirgi loyihangizda ushbu eng yaxshi amaliyotlarga amal qildingizmi? Ulashish uchun tushunchalaringiz bormi? Sharhlar yuqori baholanadi.

Siz buni foydali deb topdingizmi? Agar shunday bo'lsa, iltimos, menga bir nechta qarsaklar bering, shunda odamlar maqolani ko'rishadi.

Djangoni rivojlantirish bo'yicha eng yaxshi tajribalar haqidagi seriyaning 1 qismi. Keyingi qismlar mavjud bo'lgandan so'ng darhol yangilash uchun meni kuzatib boring.

CodingStartups-da texnologik tadbirkorlar uchun ko'proq foydali maslahatlarni toping.