Uzlabojiet savu Django projektu, izmantojot šo labāko praksi

Django ir izturīga, uz atvērtā koda, Python balstīta sistēma tīmekļa lietojumprogrammu veidošanai. Tā popularitāte ir palielinājusies pēdējo pāris gadu laikā, un tā jau ir nobriedusi un plaši izmantota, un aiz tās ir liela kopiena.

Starp citām Python balstītām tīmekļa lietojumprogrammu (piemēram, Flask un Pyramid) izveides shēmām Django ir vispopulārākais. Tas atbalsta gan Python versiju 2.7, gan Python 3.6. Bet šī raksta laikā Python 2.7 joprojām ir pieejamākā versija sabiedrības, trešo personu pakotņu un tiešsaistes dokumentācijas ziņā. Pareizi lietojot, Django ir drošs un nodrošina lielu elastību. Tas ir veids, kā iet, izstrādājot servera puses lietojumprogrammas, izmantojot Python.

3 populārāko Python tīmekļa attīstības ietvaru Google Trends

Kā pieredzējis Python un Django izstrādātājs, es dalīšos ar jums par labāko Django iestatīšanas praksi, ko esmu iemācījies un apkopojis gadu gaitā. Neatkarīgi no tā, vai zem jostas ir daži Django projekti vai arī jūs tikai sākat sākt savu darbu no nulles, šeit aprakstītā paraugprakse var palīdzēt jums izveidot labākas lietojumprogrammas.

Es uzrakstīju šo rakstu no ļoti praktiskas domāšanas, lai jūs nekavējoties varētu pievienot dažus rīkus izstrādes rīku komplektam. Jūs pat varat izveidot modernu pielāgotu Django katlu plāksni nākamajiem projektiem.

Šī raksta vajadzībām es pieņemu, ka jūs izmantojat Linux Ubuntu mašīnu. Visā rakstā dažas koda līnijas sākas ar zīmi $. Tos izmanto, lai uzsvērtu, ka šī līnija jāievieto terminālī. Noteikti nokopējiet līniju bez zīmes $.

Virtuālā vide

Izstrādājot uz Python balstītas lietojumprogrammas, trešo personu pakešu izmantošana ir nepārtraukta lieta. Šīs paketes tiek bieži atjauninātas, tāpēc ir ļoti svarīgi tās saglabāt. Izstrādājot arvien vairāk projektu vienā un tajā pašā vietējā mašīnā, ir grūti izsekot katras paketes pašreizējai versijai. Dažādiem projektiem nav iespējams izmantot vienas un tās pašas paketes dažādas versijas. Turklāt viena projekta paketes atjaunināšana var sabojāt cita projekta funkcionalitāti un otrādi.

Šeit ir noderīga Python virtuālā vide. Virtuālās vides instalēšana:

$ apt-get atjauninājums
$ apt-get instalēt python-pip python-dev build-essential
$ export LC_ALL = "lv_LV.UTF-8" # varētu būt nepieciešams, ja no nākamās rindas saņemat kļūdu
$ pip instalēt - atjaunināt pip
$ pip install - atjauniniet virtuualenv
$ mkdir ~ / .virtualenvs
$ pip instalēt virtualenvwrapper
$ eksportēt WORKON_HOME = ~ / .virtualenvs
$ nano ~ / .bashrc

Pievienojiet šo rindu faila beigām:

. /usr/local/bin/virtualenvwrapper.sh

Pēc tam izpildiet:

USD. .bashrc

Pēc instalēšanas izveidojiet jaunu virtuālo vidi savam projektam, ierakstot:

$ mkvirtualenv projekta nosaukums

Atrodoties virtuālajā vidē, jūs pamanīsit, ka terminālim ir pievienots prefikss, piemēram:

(projekta nosaukums) ofir @ rotaļu laukums: ~ $

Lai deaktivizētu (izietu) no virtuālās vides un atgrieztos vietējās mašīnas galvenajā Python kontekstā, izmantojiet:

$ deaktivizēt

Lai aktivizētu (sāktu) virtuālās vides kontekstu, izmantojiet:

$ workon projekta nosaukums

Lai uzskaitītu vietējā mašīnā esošo virtuālo vidi, izmantojiet:

USD lsvirtualenv

Turot projekta atkarības (paketes) virtuālā vidē uz jūsu datora, jūs varat tās turēt izolētā vidē. Jūs tos izmantojat tikai vienam (vai vairākiem) projektiem. Veidojot jaunu virtuālo vidi, jūs sākat jaunu vidi bez tajā instalētām pakotnēm. Tad jūs varat izmantot, piemēram:

(projekta nosaukums) $ pip instalēt Django

Django instalēšanai virtuālajā vidē vai:

(projekta nosaukums) $ pip install Django == 1.11

Django versijas 1.11 instalēšanai, kas ir pieejama tikai no apkārtējās vides.

Ne jūsu galvenais Python tulks, ne arī citas jūsu datora virtuālās vides nevarēs piekļūt jaunajai Django pakotnei, kuru tikko instalējāt.

Lai izmantotu runerver komandu, izmantojot savu virtuālo vidi, virtuālās vides kontekstā izmantojiet:

(projekta nosaukums) $ cd / ceļš / uz / django / projekts
(projekta_ nosaukums) $ ./manage.py runerver

Tāpat, ievadot Python tulku no virtuālās vides, ierakstiet:

(projekta nosaukums) $ python

Tam būs piekļuve paketēm, kuras jūs jau esat instalējis vidē.

Prasības

Prasības ir Python pakešu (atkarību) saraksts, kuras jūsu projekts izmanto, kamēr tā darbojas, ieskaitot katras paketes versiju. Šis ir fails.txt faila piemērs:

dicttoxml == 1.7.4
Django == 1.11.2
h5py == 2.7.0
matplotlib == 2.0.2
sastindzis == 1.13.0
Spilvens == 4.1.1
psycopg2 == 2.7.1
pyparsing == 2.2.0
python-dateutil == 2.6.0
pytz == 2017.2
seši == 1.10.0
xmltodict == 0.11.0

Lai pareizi sadarbotos ar citiem izstrādātājiem, ir svarīgi atjaunināt failu.txt failu. Tas ir svarīgi arī, lai ražošanas vide būtu pareizi konfigurēta. Šis fails, ja tas ir iekļauts jūsu kodu krātuvē, ļauj atjaunināt visas virtuālajā vidē instalētās paketes, izpildot terminālī vienu rindu. Tad jūs varat ātri izveidot jaunus izstrādātājus.

Lai ģenerētu jaunu prasību.txt vai atjauninātu esošo, izmantojiet to savā virtuālajā vidē:

(projekta_nosaukums)

Jūsu ērtībai pārliecinieties, ka izpildāt šo komandu mapē, kuru izseko jūsu Git krātuve. Tas ļauj arī citiem koda gadījumiem piekļūt failam needs.txt.

Ja komandai pievienojas jauns izstrādātājs vai ja vēlaties konfigurēt jaunu vidi, izmantojot tās pašas pakotnes, kas uzskaitītas failā rights.txt, izpildiet virtuālās vides kontekstā:

(projekta nosaukums) $ cd / ceļš / uz / prasības / fails
(projekta nosaukums) $ pip install -r rights.txt

Visas failā uzskaitītās prasības nekavējoties tiks instalētas jūsu virtuālajā vidē. Vecākās versijas tiks atjauninātas, un jaunākās versijas tiks pazeminātas, lai ietilptu precīzā prasību.txt sarakstā. Tomēr esiet uzmanīgs - vidēs, kuras jūs joprojām vēlaties ievērot, var būt atšķirības.

Es ļoti iesaku šīs komandas integrēt jūsu darba plūsmā. Pirms koda ievietošanas repozitorijā atjauniniet failu.txt failu un pēc koda izvilkšanas no repozitorija instalējiet prasību.txt failu.

Kredīts: https://www.djangoproject.com/

Labāka settings.py konfigurācija

Django iznāk no komplekta ar ļoti vienkāršu, taču noderīgu settings.py failu. Tas nosaka galvenās un visnoderīgākās jūsu projekta konfigurācijas. Fails settings.py ir ļoti vienkāršs. Bet dažreiz kā izstrādātājam, kas strādā komandā, vai, iestatot ražošanas vidi, jums ir nepieciešami vairāk nekā viens pamata settings.py fails.

Vairāki iestatījumu faili ļauj viegli definēt pielāgotas konfigurācijas katrai videi atsevišķi, piemēram:

ALLOWED_HOSTS # ražošanas videi
Atkļūdot
DATU BĀZES # dažādiem izstrādātājiem vienā komandā

Ļaujiet man jūs iepazīstināt ar paplašinātu pieeju iestatījumu.py faila konfigurēšanai. Tas ļauj uzturēt dažādas versijas un jebkurā laikā un vidē izmantot vēlamo.

Vispirms dodieties uz sava settings.py faila ceļu:

(projekta nosaukums) $ cd / ceļš / uz / iestatījumi / fails

Pēc tam izveidojiet jaunu moduli ar nosaukumu iestatījumi (modulis ir mape, kurā ir fails __init__.py):

(projekta nosaukums) $ mkdir iestatījumi

Tagad pārdēvējiet savu settings.py failu uz base.py un ievietojiet to jaunajā izveidotajā modulī:

(projekta_nosaukums) $ mv settings.py iestatījumi / base.py

Šajā piemērā es pieņemu, ka vēlaties konfigurēt vienu iestatījumu failu savai attīstības videi un vienu - ražošanas videi. Dažādi vienas komandas izstrādātāji var izmantot tieši tādu pašu pieeju, lai definētu dažādus iestatījumu failus.

Jūsu attīstības videi izveidojiet:

(projekta nosaukums) $ nano iestatījumi / development.py

Pēc tam ierakstiet:

no .base importa *
DEBUG = taisnība

un saglabājiet failu, nospiežot Ctrl + O, Enter un pēc tam Ctrl + X.

Ražošanas videi izveidojiet:

(projekta nosaukums) $ nano iestatījumi / production.py

un tips:

no .base importa *
DEBUG = nepatiess
ALLOWED_HOSTS = ['app.project_name.com',]

Tagad, kad vien vēlaties pievienot vai atjaunināt noteiktas vides iestatījumus, to var viegli izdarīt pats savā iestatījumu failā.

Jums varētu rasties jautājums - kā Django zina, kuru iestatījumu failu ielādēt katrā vidē? Tam tiek izmantots fails __init__.py. Piemēram, kad Django meklē iestatījumus.py, ko tas izmantoja, palaižot serveri, tagad tas atrod iestatījumu moduli, nevis iestatījumu.py failu. Bet, ja tas ir modulis, kas satur failu __init__.py, ciktāl tas attiecas uz Django, tas ir tieši tas pats. Django ielādēs failu __init__.py un izpildīs visu, kas tajā rakstīts.

Tāpēc mums jādefinē, kuru iestatījumu failu mēs vēlamies ielādēt faila __init__.py iekšpusē, izpildot:

(projekta nosaukums) $ iestatījumi / __ init__.py

un tad ražošanas videi, piemēram, ierakstot:

no .production importa *

Tādā veidā Django ielādēs visus base.py un production.py iestatījumus katru reizi, kad tas tiks startēts. Burvju?

Tagad vienīgā konfigurācija ir saglabāt __init__.py failā .gitignore, lai tas netiktu iekļauts izstumšanas un atvilkšanas failos. Kad esat iestatījis jaunu vidi, neaizmirstiet iestatījumu modulī izveidot jaunu failu __init__.py. Pēc tam importējiet nepieciešamo iestatījumu failu tieši tā, kā mēs to darījām iepriekš.

Šajā rakstā mēs esam apskatījuši trīs labākās prakses, lai labāk izveidotu jūsu Django projektu:

  • Darbs virtuālajā vidē
  • Atjauniniet prasību.txt failu un nepārtraukti to izmantojiet savā darba plūsmā
  • Labāka projekta iestatījumu masīva iestatīšana

Vai savā pēdējā projektā esat ievērojis šo labāko praksi? Vai jums ir kādas atziņas, ar kurām dalīties? Komentāri tiek augstu novērtēti.

Vai jums tas šķita noderīgi? Ja tā, lūdzu, iedodiet man dažus skaudumus, lai rakstu redzētu vairāk cilvēku.

Šī ir sērijas par Django attīstības labāko praksi 1. daļa. Sekojiet man, lai saņemtu tūlītēju atjauninājumu, tiklīdz būs pieejamas nākamās daļas.

CodingStartups vietnē atradīsit vairāk lielisku padomu tehnoloģiskajiem uzņēmējiem.