Fifi ati Ṣiṣeto Iṣeto Ayelujara Django pẹlu Awọn agbegbe Foju ni CentOS/Debian - Apá 1


Ni nnkan bi ọdun 20 sẹyin nigbati Oju opo wẹẹbu Agbaye tun wa ni ibẹrẹ, nini oju opo wẹẹbu ti ara ẹni tabi iṣowo jẹ igbadun toje. Pẹlu idagbasoke atẹle ti ọpọlọpọ awọn imọ-ẹrọ wẹẹbu ati iṣafihan akoonu ti o ni agbara ti a pese nipasẹ apapọ awọn eto ẹgbẹ olupin ati awọn apoti isura data, awọn ile-iṣẹ ko le ni itẹlọrun pẹlu nini oju opo wẹẹbu aimi kan.

Nitorinaa, awọn ohun elo wẹẹbu di otitọ - awọn eto ni oye kikun ti ọrọ ti n ṣiṣẹ lori oke olupin ayelujara ati wiwọle nipasẹ ẹrọ lilọ kiri lori ayelujara kan.

Lati jẹ ki idagbasoke rọrun ati ki o munadoko diẹ sii, awọn ilana wẹẹbu ti ṣe apẹrẹ lati ṣe iranlọwọ fun awọn olutẹpa eto ninu awọn igbiyanju wọn lati ṣẹda awọn ohun elo. Ni kukuru, ilana wẹẹbu kan n ṣetọju awọn iṣẹ ṣiṣe pataki ti o wọpọ ni ilana idagbasoke bii gbigbe pẹlu iṣakoso igba olumulo, ibaraenisepo pẹlu awọn apoti isura data, ati iṣe ti o dara ti mimu iṣaro iṣowo ya sọtọ si ọgbọn ifihan, lati lorukọ awọn apẹẹrẹ diẹ.

Ninu jara 3-article Django, a yoo ṣe agbekalẹ ọ si Django, ilana wẹẹbu olokiki ti o da lori Python. Fun idi eyi, o kere ju kekere ti o mọ pẹlu ede siseto yii ni a daba ṣugbọn ti o ba ni diẹ si ko si iriri pẹlu rẹ, a yoo tun rin ọ nipasẹ awọn ipilẹ.

Fifi Django sori CentOS ati Awọn olupin Debian

Botilẹjẹpe o le fi Django sori ẹrọ lati Debian mejeeji (v1.7.7: atilẹyin ti o gbooro yoo pari ni Oṣu kejila ọdun 2015) ati Fedora EPEL (v1.6.11: a dawọ atilẹyin ti o gbooro sii ni Oṣu Kẹrin Ọjọ 2015), awọn ẹya ti o wa kii ṣe iduroṣinṣin LTS tuntun (Atilẹyin Igba pipẹ) itusilẹ (v1.8.13, bi Oṣu Karun ọdun 2016).

Ninu ẹkọ yii a yoo fihan ọ bi o ṣe le fi Django v1.8.13 sori ẹrọ nitori o ti ni atilẹyin atilẹyin gbooro si titi o kere Kẹrin ti ọdun 2018.

Ọna ti a ṣe iṣeduro lati fi sori ẹrọ Django jẹ nipasẹ pip, ohun elo olokiki fun ṣiṣakoso awọn idii Python. Pẹlupẹlu, lati ṣẹda awọn agbegbe Python ti o ya sọtọ ati yago fun awọn ija laarin awọn iṣẹ akanṣe ti o le nilo awọn ẹya oriṣiriṣi ti awọn igbẹkẹle sọfitiwia, lilo awọn agbegbe foju ni iwuri pupọ.

Awọn irinṣẹ ti a lo lati ṣẹda ati ṣakoso awọn agbegbe Python foju ni a pe ni virtualenv.

Tẹle awọn igbesẹ wọnyi lati ṣe fifi sori ẹrọ:

1. Fun awọn pinpin kaakiri Fedora (ayafi ni Fedora funrararẹ), jẹ ki ibi ipamọ EPEL ṣiṣẹ ni akọkọ:

# yum update && yum install epel-release

2. Fi pip ati virtualenv sii:

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

3. Ṣẹda itọsọna kan lati tọju iṣẹ ibẹrẹ rẹ.

# mkdir ~/myfirstdjangoenv
# cd ~/myfirstdjangoenv

4. Ṣẹda ati muu ṣiṣẹ ayika ti ko foju kan:

# virtualenv myfirstdjangoenv

Aṣẹ ti o wa loke ṣẹda akojọpọ awọn faili ati awọn ipin-iṣẹ sinu ~/myfirstdjangoenv ati ni ipilẹ nfi ẹda ti agbegbe ti Python ati pip sori ẹrọ laarin ilana itọsọna lọwọlọwọ. Nigbamii ti, a nilo lati mu ayika ti foju ti a ṣẹṣẹ ṣẹda ṣiṣẹ:

# source myfirstdjangoenv/bin/activate

5. Ṣe akiyesi bi aṣẹ aṣẹ ṣe yipada lẹhin aṣẹ to kẹhin. O to akoko lati fi sori ẹrọ Django:

Akiyesi pe o ti ya sikirinifoto ti o wa ni isalẹ lakoko ẹya ti tẹlẹ ti ẹkọ yii, ṣugbọn iṣagbejade ti a reti jẹ kanna nigbati o nfi Django 1.8.13 sori ẹrọ):

# pip install Django==1.8.13

O le ṣayẹwo ẹya Django nipa ṣiṣafihan ikarahun Python kan lati inu itọsọna iṣẹ lọwọlọwọ rẹ:

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

(Lẹẹkansi, aṣẹ ti o wa loke yẹ ki o pada 1.8.13 nigbati o ṣayẹwo ẹya Django lọwọlọwọ).

Lati jade kuro ni iyara Python, tẹ:

>>> exit() 

ki o tẹ Tẹ. Itele, pa agbegbe foju:

# deactivate

Jọwọ ṣe akiyesi pe lakoko ti ayika foju ṣi wa ni pipa, Django ko si:

Bii o ṣe Ṣẹda Ise agbese akọkọ ni Django

Lati ṣẹda iṣẹ akanṣe laarin agbegbe foju ti a ṣẹda tẹlẹ, o nilo lati muu ṣiṣẹ:

# source myfirstdjangoenv/bin/activate

Nigbamii ti, ilana naa yoo ṣẹda gbogbo ilana itọsọna lati tọju iṣẹ akanṣe rẹ. Lati ṣe eyi, iwọ yoo nilo lati ṣiṣe.

# django-admin startproject myfirstdjangoproject

Aṣẹ ti o wa loke yoo ṣẹda itọsọna kan ti a npè ni myfirstdjangoproject inu itọsọna iṣẹ lọwọlọwọ rẹ.

nibi ti iwọ yoo wa faili kan ti a npè ni manage.py (ohun elo kan ti yoo ṣe iranlọwọ fun ọ lati ṣakoso iṣẹ rẹ nigbamii) ati itọnisọna kekere miiran (~/myfirstdjangoenv/myfirstdjangoproject/myfirstdjangoproject). Ilana itọsọna ikẹhin yii yoo ṣiṣẹ bi apoti fun awọn faili iṣẹ akanṣe.

Lakoko ti awọn faili iyoku yoo ni oye gidi lẹhin ti a ba ti ṣe atunwo diẹ ninu Python lati bẹrẹ kikọ ohun elo wẹẹbu gidi kan, o tọ ati daradara lati ṣe akiyesi awọn faili bọtini ti yoo rii ninu ilana apo eiyan iṣẹ akanṣe kan:

  1. myfirstdjangoproject/__ init__.py: Faili ti o ṣofo yii sọ fun Python pe itọsọna yii yẹ ki o ṣe akiyesi package Python.
  2. myfirstdjangoproject/settings.py: Awọn eto pataki fun iṣẹ akanṣe Django yii.
  3. myfirstdjangoproject/urls.py: a TOC (Tabili Awọn akoonu) ti aaye rẹ ti o ni agbara Django.
  4. myfirstdjangoproject/wsgi.py: Oju-ọna titẹsi fun awọn olupin WSGI ibaramu lati ṣe iṣẹ akanṣe rẹ.

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

Ni afikun, Django ni iwuwo iwuwo ti a ṣe sinu rẹ (ti a kọ sinu Python iru si Python SimpleHTTP, kini ohun miiran?) Ti o le lo lati ṣe idanwo awọn ohun elo rẹ lakoko ilana idagbasoke laisi nini lati ba iṣẹ ṣiṣe ti siseto olupin wẹẹbu kan ni ipele pataki yii.

Sibẹsibẹ, o nilo lati mọ pe eyi ko yẹ fun agbegbe iṣelọpọ - kan fun idagbasoke. Lati ṣe ifilọlẹ idawọle tuntun ti o ṣẹda, yi ilana itọsọna lọwọlọwọ rẹ si itọsọna apo fun iṣẹ rẹ (~/myfirstdjangoenv/myfirstdjangoproject) ati ṣiṣe:

# python manage.py runserver 0.0.0.0:8000

Ti o ba ṣiṣẹ sinu aṣiṣe wọnyi:

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

Ṣe ohun ti o sọ:

# python manage.py migrate

ati lẹhinna bẹrẹ olupin naa lẹẹkansii:

# python manage.py runserver 0.0.0.0:8000

A yoo bo imọran ti awọn ijira ni awọn nkan ti n bọ ti jara yii, nitorinaa o le foju foju ba ifiranṣẹ aṣiṣe naa fun akoko naa.

Ni eyikeyi iṣẹlẹ, o le yi ibudo aiyipada pada nibiti olupin wẹẹbu ti a ṣe sinu rẹ yoo gbọ. Nipa lilo 0.0.0.0 bi wiwo nẹtiwọọki lati tẹtisi, a gba awọn kọnputa miiran ni nẹtiwọọki kanna lati wọle si wiwo olumulo ti iṣẹ akanṣe (ti o ba lo 127.0.0.1 dipo, iwọ yoo ni anfani lati wọle si UI nikan lati localhost).

O tun le yi ibudo pada si omiiran ti o yan, ṣugbọn iwọ yoo tun nilo lati rii daju pe a gba laaye ijabọ nipasẹ iru ibudo nipasẹ ogiri ogiri rẹ:

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

Nitoribẹẹ, o lọ laisi sọ pe iwọ yoo nilo lati ṣe imudojuiwọn ibudo ti o gba laaye ti o ba yan lati lo oriṣiriṣi nigba ti n ṣe ifilọlẹ olupin wẹẹbu fẹẹrẹ.

O yẹ ki o wo abajade atẹle ni ebute rẹ:

# python manage.py runserver 0.0.0.0:8000

Ni aaye yii, o le ṣii aṣawakiri wẹẹbu ayanfẹ rẹ ki o lọ kiri si adiresi IP ti ẹrọ nibiti o ti fi sori ẹrọ Django atẹle nipa nọmba ibudo naa. Ninu ọran mi, o jẹ apoti Debian Jessie pẹlu IP 192.168.0.25 ati gbigbọ lori ibudo 8000:

http://192.168.0.25:8000

Lakoko ti o jẹ ohun nla ti a ni anfani lati pari iṣeto ibẹrẹ ti iṣẹ akanṣe kan, iṣẹ pupọ tun wa lati tun ṣe, bi a ṣe tọka si ifiranṣẹ ti o wa loke.

Akopọ

Ninu itọsọna yii a ti ṣalaye bii o ṣe le fi sori ẹrọ ati tunto agbegbe ti o foju kan fun Django, ipilẹ oju opo wẹẹbu ṣiṣii ṣiṣipọ ti o da lori Python.

Laibikita boya o jẹ olupilẹṣẹ ohun elo tabi olutọju eto, iwọ yoo fẹ lati bukumaaki nkan yii ati iyoku ti jara nitori awọn aye ni pe ni aaye kan tabi omiiran iwọ yoo nilo lati ṣe akiyesi iwulo iru ọpa bẹ fun awọn iṣẹ ṣiṣe ojoojumọ rẹ.

Ninu awọn nkan atẹle ti jara yii a yoo jiroro bawo ni a ṣe le kọ lori ohun ti a ti ṣaṣeyọri tẹlẹ lati ṣẹda ohun elo ti o rọrun, sibẹsibẹ, iṣẹ wẹẹbu nipa lilo Django ati Python.

Gẹgẹbi igbagbogbo, ma ṣe ṣiyemeji lati fi akọsilẹ silẹ fun wa ti o ba ni awọn ibeere nipa nkan yii tabi awọn didaba lati ni ilọsiwaju. A n reti lati gbọ lati ọdọ rẹ!