Javítsa a Django-projektet ezekkel a bevált gyakorlatokkal

A Django egy robusztus, nyílt forrású, Python-alapú keret a webes alkalmazások készítéséhez. Népszerűsége nőtt az elmúlt néhány évben, és már érett és széles körben használják, mögötte nagy közösség él.

A webes alkalmazások létrehozására szolgáló Python-alapú keretek között (mint például a Flask és a Pyramid) a Django messze a legnépszerűbb. Támogatja a Python 2.7 és a Python 3.6 verziókat is. A cikk idején azonban a Python 2.7 továbbra is hozzáférhetőbb verzió a közösségi, harmadik féltől származó csomagok és az online dokumentáció szempontjából. A Django biztonságos, ha helyesen használja, és nagy rugalmasságot biztosít. Ez a mód a szerver oldali alkalmazások Python használatával történő fejlesztéséhez.

A Google Trends a 3 legnépszerűbb Python webes fejlesztési keretrendszerből

Tapasztalt Python és Django fejlesztőként megosztom veled a Django telepítésével kapcsolatos bevált gyakorlatokat, amelyeket az évek során megtanultam és összegyűjtöttem. Függetlenül attól, hogy van néhány Django-projekt az övé alatt, vagy éppen a nulláról indítja el az elsőt, az itt ismertetett legjobb gyakorlatok segíthetnek a jobb alkalmazások létrehozásában az úton.

Ezt a cikket nagyon praktikus gondolkodásmódból írtam, így azonnal hozzáadhat néhány eszközt a fejlesztési eszközkészlethez. Még egy speciális, egyedi Django kazánlapot is létrehozhat a következő projektekhez.

A cikk alkalmazásában feltételezem, hogy Linux Ubuntu gépet használsz. A cikk egészében néhány kódsor $ jellel kezdődik. Ezeket hangsúlyozzák, hogy ezt a vezetéket be kell illeszteni a terminálba. Ne felejtse el másolni a sort a $ jel nélkül.

Virtuális környezet

A Python-alapú alkalmazások fejlesztése során a harmadik féltől származó csomagok használata folyamatos dolog. Ezeket a csomagokat gyakran frissítik, ezért elengedhetetlen a szervezésük. Ha egyre több projektet dolgoz ki ugyanazon a helyi gépen, kihívást jelent az egyes csomagok aktuális verziójának nyomon követése. Lehetetlen ugyanazon csomag különböző verzióinak használata különböző projektekhez. Ezenkívül az egyik projekt csomagjának frissítése megszakíthatja a másik funkcionalitását, és fordítva.

Itt hasznos a Python virtuális környezet. A virtuális környezet telepítéséhez használja:

$ apt-get frissítés
$ apt-get install python-pip python-dev build-essential
$ export LC_ALL = "en_US.UTF-8" # szükség lehet arra az esetre, ha hibát kap a következő sorból
$ pip install - frissítés pip
$ pip install - frissítsd a virtuualenv fájlt
$ mkdir ~ / .virtualenvs
$ pip install virtualenvwrapper
$ export WORKON_HOME = ~ / .virtualenvs
$ nano ~ / .bashrc

Adja hozzá ezt a sort a fájl végéhez:

. /usr/local/bin/virtualenvwrapper.sh

Ezután hajtsa végre:

$. .bashrc

A telepítés után hozzon létre egy új virtuális környezetet a projekthez a következő gépeléssel:

$ mkvirtualenv projekt_neve

Miközben virtuális környezetében tartózkodik, észre fogja venni, hogy egy előtagot adtak hozzá a terminálhoz, például:

(projekt_neve) ofir @ játszótér: ~ $

A virtuális környezet inaktiválásához (kilépéshez) és a helyi számítógép fő Python-környezetéhez való visszatéréshez használja:

$ inaktiválása

A virtuális környezet kontextusának aktiválásához (indításához) használja:

$ workon projekt_neve

A helyi gépen létező virtuális környezetek felsorolásához használja:

$ lsvirtualenv

A projektfüggőségek (csomagok) virtuális környezetben történő tartása a gépen lehetővé teszi, hogy izolált környezetben tartsák őket. Csak egy (vagy több) projekthez használja őket. Új virtuális környezet létrehozásakor egy új környezetet indít el, nincs benne csomagok. Akkor használhatja például:

(projekt_neve) $ pip install Django

a Django telepítéséhez a virtuális környezetben, vagy:

(projekt_neve) $ pip install Django == 1.11

a Django 1.11 verziójának telepítéséhez, csak a környezetből elérhető.

Sem a fő Python-értelmező, sem a számítógép többi virtuális környezete nem fér hozzá az éppen telepített új Django csomaghoz.

A runerver parancs virtuális környezetével történő használatához, míg a virtuális környezetben használja:

(projektnév) $ cd / elérési út / a / django / projekthez
(projekt_neve) $ ./manage.py futóverver

Hasonlóképpen, amikor a virtuális környezetből belép a Python-értelmezőbe, írja be:

(projektnév) $ python

Hozzáférhet a környezetbe már telepített csomagokhoz.

követelmények

A követelmények azoknak a Python-csomagoknak (függőségeknek) a listája, amelyeket a projekt futtatás közben használ, beleértve az egyes csomagok verzióját. Íme egy példa a követelmények.txt fájlra:

dicttoxml == 1.7.4
Django == 1.11.2
h5py == 2.7.0
matplotlib == 2.0.2
numpy == 1.13.0
Párna == 4.1.1
psycopg2 == 2.7.1
pyparsing == 2.2.0
python-dateutil == 2.6.0
pytz == 2017,2
Hat == 1.10.0
xmltodict == 0.11.0

A követelmények.txt fájl naprakészen tartása elengedhetetlen a más fejlesztőkkel való megfelelő együttműködéshez. Az is fontos, hogy a termelési környezet megfelelően konfigurálva legyen. Ez a fájl, ha szerepel a kódtárban, lehetővé teszi a virtuális környezetben telepített összes csomag frissítését a terminálon egy sor végrehajtásával. Akkor új fejlesztőket azonnal felkészíthet és futtathat.

Egy új követelmények.txt létrehozásához vagy a meglévő frissítéséhez használja a virtuális környezetben:

(projekt_neve) $ pip freeze> követelmények.txt

Az Ön kényelme érdekében mindenképpen hajtsa végre ezt a parancsot egy mappában, amelyet a Git-tárhely követ. Ez lehetővé teszi, hogy a kód más példányai hozzáférjenek a követelmények.txt fájlhoz is.

Ha új fejlesztő csatlakozik a csapathoz, vagy ha új környezetet szeretne konfigurálni ugyanazokkal a csomagokkal, amelyek fel vannak sorolva a követelmények.txt fájlban, akkor hajtsa végre a virtuális környezetben:

(projekt_neve) $ cd / elérési út / a / követelmények / fájl fájlhoz
(projekt_neve) $ pip install -r követelmények.txt

A fájlban felsorolt ​​összes követelményt azonnal telepíti a virtuális környezetbe. A régebbi verziók frissítésre kerülnek, az újabb verziók pedig alacsonyabb szintre kerülnek, hogy illeszkedjenek a követelmények.txt pontos listájához. Legyen óvatos - vannak olyan különbségek a környezetek között, amelyeket még mindig tisztelni szeretne.

Nagyon javaslom ezeket a parancsokat integrálni a munkafolyamatba. Frissítse a követelmények.txt fájlt, mielőtt betölti a kódot a lerakatba, és telepítse a követelmények.txt fájlt, miután kihúzta a kódot a lerakatból.

Hitel: https://www.djangoproject.com/

Jobb beállítások.py konfiguráció

A Django nagyon egyszerű, mégis hasznos settings.py fájlt tartalmaz. Ez meghatározza a projekt fő és leghasznosabb konfigurációit. A settings.py fájl nagyon egyszerű. De néha egy csapaton dolgozó fejlesztőként vagy a termelési környezet beállításánál több alapvető fájlra van szükség.

A több beállító fájl lehetővé teszi az egyedi környezetre szabott konfigurációk egyszerű meghatározását, például:

ALLOWED_HOSTS # a termelési környezet számára
DEBUG
Adatbázisok # ugyanazon csapat különböző fejlesztői számára

Hadd mutassam be Önnek egy kiterjesztett megközelítést a settings.py fájl konfigurálásához. Ez lehetővé teszi a különféle verziók karbantartását és a kívánt verzió használatát bármikor, bármilyen környezetben.

Először keresse meg a settings.py fájl elérési útját:

(projektnév) $ cd / elérési út / a / beállítások / fájlhoz

Ezután hozzon létre egy új modult, melynek neve a beállítások (a modul egy __init__.py fájlt tartalmazó mappa):

(projekt_neve) $ mkdir beállításai

Most nevezze át a settings.py fájlt a base.py fájlba, és helyezze be a létrehozott új modulba:

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

Feltételezem, hogy ebben a példában egy beállítási fájlt konfigurálni szeretne a fejlesztési környezetre, a másikat pedig a termelési környezetre. Ugyanazon csapat különböző fejlesztői pontosan ugyanazt a megközelítést használhatják a különböző beállításfájlok meghatározására.

Fejlesztői környezetéhez hozzon létre:

(projekt_neve) $ nano beállítások / development.py

Ezután írja be:

a .base importálásból *
HIBA = Igaz

és mentse el a fájlt a Ctrl + O, Enter, majd a Ctrl + X billentyűkombinációval.

Termelési környezetéhez hozzon létre:

(projekt_neve) $ nano beállítások / production.py

és írja be:

a .base importálásból *
HIBA = hamis
ALLOWED_HOSTS = ['app.project_name.com',]

Most, amikor hozzá kíván adni vagy frissíteni kíván egy adott környezet beállításait, könnyen megteheti a saját beállításfájljában.

Kíváncsi lehet - hogyan tudja a Django, hogy melyik beállítási fájlt kell betölteni az egyes környezetekre? Erre használják az __init__.py fájlt. Amikor a Django megkeresi a settings.py fájlt, amelyet a szerver futtatásakor töltött be, most egy beállításmodulot talál, nem pedig a settings.py fájlt. De mindaddig, amíg ez egy __init__.py fájlt tartalmazó modul, Django vonatkozásában, pontosan ugyanaz. A Django betölti az __init__.py fájlt, és végrehajt minden, ami benne van.

Ezért meg kell határoznunk, hogy melyik beállító fájlt szeretnénk betölteni az __init__.py fájlba a következő végrehajtással:

(projekt_neve) $ beállítások / __ init__.py

majd egy termelési környezetre például:

a .production importálásból *

Ily módon a Django minden indításkor betölti az összes base.py és production.py beállítást. Varázslat?

Most csak az a konfiguráció marad, hogy az __init__.py fájlt a .gitignore fájlban tárolja, így az nem szerepel a push és pull fájlokban. Miután beállított egy új környezetet, ne felejtsd el létrehozni egy új __init__.py fájlt a beállítási modulban. Ezután pontosan úgy importálja a szükséges beállító fájlt, mint korábban.

Ebben a cikkben három bevált gyakorlatot tárgyaltunk a Django projekt jobb felállításához:

  • Munka egy virtuális környezetben
  • A követelmények.txt fájl frissítése és folyamatos használata a munkafolyamatban
  • Egy jobb projektbeállítási tömb beállítása

Követte ezeket a bevált gyakorlatokat a legutóbbi projektében? Van valamilyen betekintést megosztani? A megjegyzéseket nagyra értékelik.

Hasznosnak találta ezt? Ha igen, kérlek, adj nekem néhány tapsot, hogy minél többen lássa a cikket.

Ez a Django fejlesztésével kapcsolatos bevált gyakorlatok sorozatának 1. része. Kövessen engem, hogy azonnali frissítést kapjon, amint a következő alkatrészek rendelkezésre állnak.

További jó tippeket találhat a technológiai vállalkozók számára a CodingStartups webhelyen.