Kufunga na Kusanidi Mfumo wa Wavuti wa Django na Mazingira ya Mtandaoni katika CentOS/Debian - Sehemu ya 1


Miaka 20 iliyopita wakati Wavuti ya Ulimwenguni Pote ilipokuwa bado changa, kuwa na tovuti ya kibinafsi au ya biashara ilikuwa karibu kuwa anasa adimu. Pamoja na maendeleo ya baadaye ya teknolojia kadhaa za wavuti na kuanzishwa kwa maudhui yanayobadilika yanayotolewa na mchanganyiko wa programu za upande wa seva na hifadhidata, makampuni hayangeweza tena kuridhika na kuwa na tovuti tuli.

Kwa hiyo, maombi ya mtandao yakawa ukweli - mipango kwa maana kamili ya neno inayoendesha juu ya seva ya mtandao na kupatikana kwa njia ya kivinjari.

Ili kufanya maendeleo kuwa rahisi na yenye ufanisi zaidi, mifumo ya wavuti iliundwa ili kuwasaidia watayarishaji programu katika juhudi zao za kuunda programu. Kwa ufupi, mfumo wa wavuti hushughulikia utendakazi wa kawaida katika mchakato wa ukuzaji kama vile kushughulikia usimamizi wa kipindi cha watumiaji, mwingiliano na hifadhidata, na mazoea mazuri ya kuweka mantiki ya biashara tofauti na mantiki ya kuonyesha, kutaja mifano michache.

Katika mfululizo huu wa makala 3 wa Django, tutakuletea Django, mfumo maarufu wa wavuti unaotegemea Python. Kwa sababu hiyo, angalau ujuzi mdogo wa lugha hii ya programu unapendekezwa lakini ikiwa huna uzoefu wowote nayo, pia tutakuelekeza katika mambo ya msingi.

Kufunga Django katika CentOS na Seva za Debian

Ingawa unaweza kusakinisha Django kutoka kwa hazina zote mbili za Debian (v1.7.7: usaidizi uliopanuliwa utasitishwa mnamo Desemba 2015) na Fedora EPEL (v1.6.11: usaidizi uliopanuliwa ulikatishwa Aprili 2015), toleo linalopatikana sio LTS ya hivi punde thabiti. (Msaada wa Muda Mrefu) kutolewa (v1.8.13, kuanzia Mei 2016).

Katika somo hili tutakuonyesha jinsi ya kusakinisha Django v1.8.13 kwa kuwa usaidizi wake uliopanuliwa umehakikishwa hadi angalau Aprili 2018.

Njia iliyopendekezwa ya kusanikisha Django ni kupitia bomba, zana maarufu ya kudhibiti vifurushi vya Python. Pia, ili kuunda mazingira ya pekee ya Python na kuepuka migogoro kati ya miradi ambayo inaweza kuhitaji matoleo tofauti ya utegemezi wa programu, matumizi ya mazingira ya kawaida yanahimizwa sana.

Zana ambazo hutumiwa kuunda na kudhibiti mazingira ya Python pepe huitwa virtualenv.

Fuata hatua hizi ili kutekeleza usakinishaji:

1. Kwa usambazaji wa msingi wa Fedora (isipokuwa katika Fedora yenyewe), wezesha hazina ya EPEL kwanza:

# yum update && yum install epel-release

2. Sakinisha bomba na virtualenv:

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

3. Unda saraka ili kuhifadhi mradi wako wa awali.

# mkdir ~/myfirstdjangoenv
# cd ~/myfirstdjangoenv

4. Unda na uwashe mazingira ya mtandaoni:

# virtualenv myfirstdjangoenv

Amri iliyo hapo juu huunda rundo la faili na saraka ndogo ndani ~/myfirstdjangoenv na kimsingi husanikisha nakala ya ndani ya Python na bomba ndani ya saraka ya sasa ya kufanya kazi. Ifuatayo, tunahitaji kuamilisha mazingira ya mtandaoni ambayo tumeunda hivi punde:

# source myfirstdjangoenv/bin/activate

5. Angalia jinsi amri ya haraka inabadilika baada ya amri ya mwisho. Sasa ni wakati wa kusakinisha Django:

Kumbuka kuwa picha ya skrini iliyo hapa chini ilichukuliwa wakati wa toleo la awali la mafunzo haya, lakini matokeo yanayotarajiwa ni sawa wakati wa kusakinisha Django 1.8.13):

# pip install Django==1.8.13

Unaweza kuangalia toleo la Django kwa kuzindua ganda la Python kutoka saraka yako ya sasa ya kufanya kazi:

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

(Tena, amri iliyo hapo juu inapaswa kurudi 1.8.13 wakati wa kuangalia toleo la sasa la Django).

Ili kutoka kwa haraka ya Python, chapa:

>>> exit() 

na bonyeza Enter. Ifuatayo, zima mazingira ya mtandaoni:

# deactivate

Tafadhali kumbuka kuwa wakati mazingira ya mtandaoni yanasalia kulemazwa, Django haipatikani:

Jinsi ya Kuunda Mradi wa Kwanza huko Django

Ili kuunda mradi ndani ya mazingira ya mtandaoni tuliyounda hapo awali, inahitaji kuamilishwa:

# source myfirstdjangoenv/bin/activate

Ifuatayo, mfumo utaunda muundo mzima wa saraka ili kuhifadhi mradi wako. Ili kufanya hivyo, utahitaji kukimbia.

# django-admin startproject myfirstdjangoproject

Amri iliyo hapo juu itaunda saraka inayoitwa myfirstdjangoproject ndani ya saraka yako ya sasa ya kufanya kazi.

ambapo utapata faili inayoitwa manage.py (huduma ambayo itakusaidia kudhibiti mradi wako baadaye) na saraka nyingine ndogo (~/myfirstdjangoenv/myfirstdjangoproject/myfirstdjangoproject). Orodha hii ndogo ya mwisho itatumika kama chombo cha faili za mradi.

Wakati faili zingine zitakuwa na maana halisi baada ya kukagua Python ili kuanza kuandika programu halisi ya wavuti, inafaa kuzingatia faili muhimu ambazo zitapatikana ndani ya saraka ya chombo cha mradi:

  1. myfirstdjangoproject/__init__.py: Faili hii tupu inamwambia Python kwamba saraka hii inapaswa kuzingatiwa kama kifurushi cha Python.
  2. myfirstdjangoproject/settings.py: Mipangilio mahususi ya mradi huu wa Django.
  3. myfirstdjangoproject/urls.py: TOC (Jedwali la Yaliyomo) ya tovuti yako inayoendeshwa na Django.
  4. myfirstdjangoproject/wsgi.py: Sehemu ya kuingilia kwa seva za wavuti zinazooana na WSGI ili kuhudumia mradi wako.

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

Kwa kuongezea, Django ina seva ya wavuti iliyojengwa ndani nyepesi (iliyoandikwa kwa Python sawa na Python SimpleHTTP, ni nini kingine?) ambayo inaweza kutumika kujaribu programu zako wakati wa mchakato wa ukuzaji bila kulazimika kushughulika na kazi ya kuweka seva ya wavuti. hatua hii maalum.

Hata hivyo, unahitaji kujua kwamba hii haifai kwa mazingira ya uzalishaji - tu kwa ajili ya maendeleo. Ili kuzindua mradi wako mpya ulioundwa, badilisha saraka yako ya sasa ya kufanya kazi hadi saraka ya kontena ya mradi wako (~/myfirstdjangoenv/myfirstdjangoproject) na uendeshe:

# python manage.py runserver 0.0.0.0:8000

Ikiwa utaingia kwenye hitilafu ifuatayo:

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

Fanya inavyosema:

# python manage.py migrate

na kisha anza seva tena:

# python manage.py runserver 0.0.0.0:8000

Tutashughulikia dhana ya uhamaji katika vifungu vifuatavyo vya mfululizo huu, ili uweze kupuuza ujumbe wa makosa kwa sasa.

Kwa hali yoyote, unaweza kubadilisha mlango chaguomsingi ambapo seva ya wavuti iliyojengewa ndani itakuwa inasikiliza. Kwa kutumia 0.0.0.0 kama kiolesura cha mtandao cha kusikiliza, tunaruhusu kompyuta nyingine katika mtandao huo kufikia kiolesura cha mradi (ikiwa unatumia 127.0.0.1 badala yake, utaweza tu kufikia UI kutoka kwa mwenyeji wa ndani).

Unaweza pia kubadilisha mlango hadi mwingine unaochagua, lakini pia utahitaji kuhakikisha kuwa trafiki kupitia lango kama hilo inaruhusiwa kupitia ngome yako:

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

Bila shaka, huenda bila kusema kwamba utahitaji kusasisha mlango unaoruhusiwa ikiwa utachagua kutumia tofauti wakati wa kuzindua seva ya wavuti nyepesi.

Unapaswa kuona matokeo yafuatayo kwenye terminal yako:

# python manage.py runserver 0.0.0.0:8000

Kwa hatua hii, unaweza kufungua kivinjari chako cha wavuti unachopenda na uende kwenye anwani ya IP ya mashine ambapo ulisakinisha Django ikifuatiwa na nambari ya bandari. Kwa upande wangu, ni sanduku la Debian Jessie na IP 192.168.0.25 na kusikiliza kwenye bandari 8000:

http://192.168.0.25:8000

Ingawa ni jambo zuri kwamba tuliweza kukamilisha usanidi wa awali wa mradi, bado kuna kazi nyingi iliyobaki kufanya, kama ilivyoonyeshwa kwenye ujumbe hapo juu.

Muhtasari

Katika mwongozo huu tumeelezea jinsi ya kusakinisha na kusanidi mazingira dhahania kwa Django, mfumo wa wavuti wa chanzo huria unaotegemea Python.

Bila kujali kama wewe ni msanidi programu au msimamizi wa mfumo, utataka kualamisha kifungu hiki na safu zingine za safu hii kwa sababu kuna uwezekano kwamba wakati fulani au mwingine utahitaji kuzingatia hitaji la zana kama hiyo kwa kazi zako za kila siku.

Katika makala zifuatazo za mfululizo huu tutajadili jinsi ya kujenga juu ya kile ambacho tayari tumekamilisha ili kuunda programu rahisi ya mtandao, lakini inayofanya kazi kwa kutumia Django na Python.

Kama kawaida, usisite kutuandikia dokezo ikiwa una maswali kuhusu makala hii au mapendekezo ya kuboresha. Tunatarajia kusikia kutoka kwako!