Namestitev in konfiguracija spletnega ogrodja Django z navideznimi okolji v CentOS/Debian - 1. del


Pred približno 20 leti, ko je bil svetovni splet še v povojih, je bilo osebno ali poslovno spletno mesto skoraj redko razkošje. Z nadaljnjim razvojem več spletnih tehnologij in uvedbo dinamičnih vsebin, ki jih zagotavlja kombinacija strežniških programov in baz podatkov, podjetja niso mogla biti več zadovoljna s statično spletno stranjo.

Tako so spletne aplikacije postale resničnost - programi v polnem pomenu besede, ki se izvajajo na vrhu spletnega strežnika in so dostopni prek spletnega brskalnika.

Za lažji in učinkovitejši razvoj so bili zasnovani spletni okviri, ki programerjem pomagajo pri ustvarjanju aplikacij. Skratka, spletni okvir skrbi za skupne osnovne funkcije v razvojnem procesu, kot so upravljanje uporabniških sej, interakcija z bazami podatkov in dobra praksa ločevanja poslovne logike od logike zaslona, če naštejemo le nekaj primerov.

V tej 3-članski seriji Django vam bomo predstavili Django, priljubljeni spletni okvir, ki temelji na Pythonu. Zaradi tega je predlagano vsaj malo poznavanja tega programskega jezika, če pa z njim imate skoraj nič izkušenj, vas bomo tudi popeljali skozi osnove.

Namestitev Djanga v strežnike CentOS in Debian

Čeprav lahko Django namestite tako iz repozitorijev Debian (v1.7.7: razširjena podpora bo ukinjena decembra 2015) kot tudi Fedora EPEL (v1.6.11: razširjena podpora je bila ukinjena aprila 2015), razpoložljiva različica ni najnovejši stabilni LTS Izdaja (Long Term Support) (v1.8.13, od maja 2016).

V tej vadnici vam bomo pokazali, kako namestiti Django v1.8.13, saj je njegova razširjena podpora zagotovljena vsaj do aprila 2018.

Priporočen način namestitve Django je pip, priljubljeno orodje za upravljanje paketov Python. Da bi ustvarili izolirana okolja Python in se izognili konfliktom med projekti, ki morda zahtevajo različne različice odvisnosti programske opreme, je uporaba virtualnih okolij zelo priporočljiva.

Orodja, ki se uporabljajo za ustvarjanje in upravljanje navideznih okolij Python, se imenujejo virtualenv.

Za izvedbo namestitve sledite tem korakom:

1. Za distribucije, ki temeljijo na Fedori (razen v sami Fedori), najprej omogočite repozitorij EPEL:

# yum update && yum install epel-release

2. Namestite pip in virtualenv:

# yum install python-pip python-virtualenv
OR 
# dnf install python-pip python-virtualenv
# aptitude update && aptitude install python-pip virtualenv

3. Ustvarite imenik za shranjevanje začetnega projekta.

# mkdir ~/myfirstdjangoenv
# cd ~/myfirstdjangoenv

4. Ustvarite in aktivirajte navidezno okolje:

# virtualenv myfirstdjangoenv

Zgornji ukaz ustvari kup datotek in podimenikov v ~/myfirstdjangoenv in v bistvu namesti lokalno kopijo Pythona in pipa v trenutni delovni imenik. Nato moramo aktivirati navidezno okolje, ki smo ga pravkar ustvarili:

# source myfirstdjangoenv/bin/activate

5. Opazite, kako se ukazni poziv spremeni po zadnjem ukazu. Zdaj je čas, da namestite Django:

Upoštevajte, da je bil spodnji posnetek zaslona posnet med prejšnjo različico te vadnice, vendar je pričakovani izhod enak pri namestitvi Django 1.8.13):

# pip install Django==1.8.13

Različico Django lahko preverite tako, da iz trenutnega delovnega imenika zaženete lupino Python:

# python
>>> import django
>>> print(django.get_version())

(Znova bi moral zgornji ukaz vrniti 1.8.13 pri preverjanju trenutne različice Django).

Če želite zapreti poziv Python, vnesite:

>>> exit() 

in pritisnite Enter. Nato izklopite navidezno okolje:

# deactivate

Upoštevajte, da medtem ko navidezno okolje ostane deaktivirano, Django ni na voljo:

Kako ustvariti prvi projekt v Djangu

Če želite ustvariti projekt v navideznem okolju, ki smo ga ustvarili prej, ga je treba aktivirati:

# source myfirstdjangoenv/bin/activate

Nato bo ogrodje ustvarilo celotno strukturo imenikov za shranjevanje vašega projekta. Če želite to narediti, boste morali zagnati.

# django-admin startproject myfirstdjangoproject

Zgornji ukaz bo ustvaril imenik z imenom myfirstdjangoproject v vašem trenutnem delovnem imeniku.

kjer boste našli datoteko z imenom manage.py (pripomoček, ki vam bo pomagal kasneje upravljati projekt) in drug podimenik (~/myfirstdjangoenv/myfirstdjangoproject/myfirstdjangoproject). Ta zadnji podimenik bo služil kot vsebnik za datoteke projekta.

Medtem ko bodo ostale datoteke resnično smiselne, potem ko smo pregledali nekaj Pythona, da bi začeli pisati resnično spletno aplikacijo, je vredno in dobro si zapomniti ključne datoteke, ki se nahajajo v imeniku vsebnika projekta:

  1. myfirstdjangoproject/__ init__.py: Ta prazna datoteka sporoča Pythonu, da je treba ta imenik obravnavati kot paket Python.
  2. myfirstdjangoproject/settings.py: določene nastavitve za ta projekt Django.
  3. myfirstdjangoproject/urls.py: TOC (kazalo) vašega spletnega mesta, ki ga poganja Django.
  4. myfirstdjangoproject/wsgi.py: vstopna točka za spletne strežnike, združljive z WSGI, ki služijo vašemu projektu.

# ls 
# ls -l myfirstdjangoproject
# ls -l myfirstdjangoproject/myfirstdjangoproject

Poleg tega ima Django vgrajen lahek spletni strežnik (napisan v Pythonu podobno kot Python SimpleHTTP, kaj še?), S katerim lahko med razvojem preizkusite svoje programe, ne da bi se morali ukvarjati z nastavitvijo spletnega strežnika na tej fazi.

Vedeti pa morate, da to ni primerno za proizvodno okolje - samo za razvoj. Če želite zagnati nov ustvarjeni projekt, spremenite trenutni delovni imenik v imenik vsebnika za svoj projekt (~/myfirstdjangoenv/myfirstdjangoproject) in zaženite:

# python manage.py runserver 0.0.0.0:8000

Če naletite na naslednjo napako:

You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.

Naredi, kar piše:

# python manage.py migrate

in nato znova zaženite strežnik:

# python manage.py runserver 0.0.0.0:8000

Pojem migracij bomo obravnavali v naslednjih člankih te serije, tako da sporočila o napaki za zdaj ne boste upoštevali.

V vsakem primeru lahko spremenite privzeta vrata, kjer bo poslušal vgrajeni spletni strežnik. Z uporabo 0.0.0.0 kot omrežnega vmesnika za poslušanje omogočamo drugim računalnikom v istem omrežju dostop do uporabniškega vmesnika projekta (če namesto tega uporabite 127.0.0.1, boste lahko do uporabniškega vmesnika dostopali samo z lokalnega gostitelja).

Vrata lahko spremenite tudi na druga, ki ste jih izbrali, vendar se morate prepričati tudi, da je promet skozi ta vrata dovoljen prek požarnega zidu:

# firewall-cmd --add-port=8000/tcp
# firewall-cmd --permanent --add-port=8000/tcp

Seveda je samoumevno, da boste morali posodobiti dovoljena vrata, če boste med zagonom lahkega spletnega strežnika uporabili druga.

V vašem terminalu bi morali videti naslednji izhod:

# python manage.py runserver 0.0.0.0:8000

Na tej točki lahko odprete svoj najljubši spletni brskalnik in se pomaknete do naslova IP naprave, v katero ste namestili Django, ki ji sledi številka vrat. V mojem primeru gre za Debian Jessie box z IP 192.168.0.25 in poslušanjem na vratih 8000:

http://192.168.0.25:8000

Čeprav je super, da smo lahko dokončali začetno nastavitev projekta, je še veliko dela, kot je navedeno v zgornjem sporočilu.

Povzetek

V tem priročniku smo razložili, kako namestiti in konfigurirati navidezno okolje za Django, vsestranski odprtokodni spletni okvir, ki temelji na Pythonu.

Ne glede na to, ali ste razvijalec aplikacij ali skrbnik sistema, boste želeli ta članek in preostali del te serije dodati med zaznamke, ker boste verjetno v določenem trenutku upoštevali potrebo po takem orodju za vsakodnevne naloge.

V naslednjih člankih te serije bomo razpravljali o tem, kako graditi na tem, kar smo že dosegli, da bi ustvarili preprosto, a funkcionalno spletno aplikacijo z uporabo Django in Pythona.

Kot vedno, ne oklevajte in nam pošljite opombo, če imate vprašanja o tem članku ali predloge za izboljšanje. Veselimo se vaših odzivov!