Ako nakonfigurovať Django a nezblázniť sa pri tom
Začiatok vývoja v Djangu nie je jednoduchý a mnohokrát sa programátori stále venujú inštalovaniu Pythonu a Djanga namiesto programovania projektu. Rozhodla som sa, že napíšem zhrnutie ako si tento proces inštalácií a konfigurácií urýchliť a zjednodušiť pre profesionálne využitie pomocou osvedčených vývojových štandardov a postupov.
Inštalácia bude prebiehať na Gite, čiže sa predpokladá, že každý z vás má Git plne funkčný. Taktiež sa predpokladá, keďže začínate s vývojom v Djangu, že máte funkčne nainštalovaný na počítači Python buď vo verzii 2.7 alebo 3.3.
Krok 1 — Inštalácia Djanga
Prvým a veľmi dôležitým krokom je inštalácia rozšírenia VIRTUALENV, ktoré nám umožní vytvoriť virtualenvwrapper na riadenie inštalácií Djanga z dôvodu existujúcich závislostí medzi Pythonom, Djangom a viacerými projektami na vašom počítači. VIRTUALENV nainštalujete jednoducho pomocou PIPu umožňujúcu prácu s balíčkami aplikácie.
pip install virtualenvwrapper
Krok 2 — Vytvorenie nového vývojového prostredia
Vytvorenie nového prostredia pre vývoj je jednoduché prostredníctvom príkazu:
virtualenv django_project
Po spustení príkazu nastanú nasledujúce situácie:
- vytvorenie projektu s názvom django_project (názov projektu je ľubovoľný podľa konvencií názvoslovia)
- automatické vytvorenie distribúcie Lib
Krok 3 — Aktivácia virtuálneho prostredia
Po nainštalovaní virtualenv je nutné ho aktivovať:
$ source/bin/activate.bat
Krok 4 — Konečne inštalácia samotného Djanga
Až v tomto kroku dochádza k samotnej inštalácii Djanga do Vášho projektu pomocou príkazu:
pip install django
Potvrdenie inštalácie pomocou
which django-admin.py
Inštalácia by bola za nami. Ďalej je nutné projekt správne nakonfigurovať
Krok 5 — Pripojenie ku GITu a GITHUBu
Je nutné využívať jeden z verzionovacích systémov. Môžte si vybrať buď GIT, ktorý používam aj ja alebo Mercurial a pripojiť ho k repozitáru na Bitbuckete.
Krok 6 — Vytvorenie projektu
Konečne sa dostávame k niečomu zmysluplnému, ideme spolu vytvoriť adresárovú štruktúru projektu. Tento tutoriál je písaný pre verziu Django 1.6, ktorý má od verzií 1.3 a 1.4 odlišnú adresárovú štruktúru. Viac informácií na oficiálnej stránke Djanga.
Poďme konečne na to :)
django-admin.py startapp project django_project
Chcela by som vás upozorniť v tomto kroku na rozdiel medzi projektom a aplikáciou v Djangu. Projekt obsahuje všetky balíčky súhrnne dokopy, zatiaľ čo aplikácia je samostatný modul obsahujúca vlastný inicializačný súbor a podsúbory. Aplikácia sa vytvára príkazom
python manage.py startapp app_name
Po prevedení tohto príkazu by ste mali mať nasledovnú štruktúru projektu:
- django_project
- settings.py
- urls.py
- wsgi.py
- manage.py
Krok 7 — Nastavenie repozitáru
Po vytvorení základnej štruktúry prejdite do koreňového adresáru projektu. Následne projekt inicializujte a vytvorte v ňom prázdny git repozitár.
git init
Pridanie projektu do repozitáru
git add django_project
Komitnutie zmien
git commit -am "prvý komit"
Krok 8 — Databázové migrácie pomocou knižnice South
Jednou z najfrustrujúcejších aspektov Djanga je zmena modelovej vrstvy aplikácie a zmeny v databáze. Tento problém je možné vyriešiť pomocou South, ktorá umožňuje vytvoriť celú aplikáciu bez nutnosti písať kód pre databázu. Zmeny modelovej vrstvy sú automaticky zaznamenané. Život je zrazu jednoduchší. :)
pip install south
- Po nainštalovaní South-u je nutné pridať ho do INSTALLED_APPS v súbore settings.py.
- Ďalším krokom je spustenie príkazu pre databázové migrácie
python manage.py syncdb
Krok 9 — Update zmien do GITu
Po tomto kroku je dobré zaznamenať zmeny do repozitáru.
git status
Zobrazí nám všetky zmeny od poslednej úpravy repozitáru.
Krok 10 — Vytvorenie .gitignore súboru
Pred nahratím nových súborov do repozitáru si vytvoríme súbor .gitignore , kde definujeme súbory, ktoré nebude do repozitáru zahrnuté. Pre Python je dobré zahrnúť určite:
- *.pyc
- *.swp
- vzorový .gitignore pre python
Krok 11 — Vytvorenie requirementov
Ešte je potrebné vytvoriť súbor requirements, kde definujeme všetky potrebné inštalácie projektu.
pip freeze > requirements.txt
Krok 12 — Nastavenie projektu
Vytvoríme si nový adresár s názvom conf , kde vložíme súbor settings.py. Settings.py obsahuje zoznam všetkých nainštalovaných aplikácií, preto je dobré si ho logicky rozčleniť do troch častí:
- DEFAULT_APPS — obsahuje základne Django aplikácie, ktoré sú súčasťou distribúcie nainštalované pomocou príkazu admin
- THIRD_PARTY_APPS — aplikácie tretích strán (napríklad South)
- LOCAL_APPS — vlastne vytvorené aplikácie
Krok 13 — Vytvorenie aplikácie
Pomocou príkazu manage.py aplikáciu vytvoríme bežným spôsobom
python manage.py startapp my_app
a následne ju pridáme do INSTALLED_APPS.
Krok 14 — Vytvorenie databázových migrácií
Prvá vec, ktorú je nutné urobiť sú databázové migrácie.
python manage.py schemamigration my_app -initial
Vytvoríme súbor migrate.py , ktorý automaticky updatne našu modelovú vrstvu pri zmenách. Taktiež je možné vrátiť zmeny v databáze pomocou:
python manage.py migrate my_app
Krok 15 — Vytvorenie vývojového prostredia
Dobrým zvykom je oddeliť vývojovú verziu od testovacej verzie. V našom prípade stačí vytvoriť adresár mimo projektu, kde bude klon našej vývojovej verzie. Pri práci s vývojovou a testovacou verziou si v GITe vytvoríme vetvy , nazývané branche.
git checkout -b <branchname>
Krok 16 — Nasadenie aplikácie
Aplikáciu máme pripravenú pre nasadenie na server. Ako na to? Pomocou jednoduchého nástroja Fabric.
pip install fabric
čo nám vytvorí súbor s názvom fabfile.py, ktorý upravíme nasledovne:
from fabric.api import local
def prepare_deployment(branch_name):
local(“python manage.py test django_project”)
local(“git add -p && git commit”)
Potom spustíme príkaz:
fab prepare_deployment
fab deploy
