Pag-instalar ug Pag-configure sa Django Web Framework nga adunay Virtual Environment sa CentOS/Debian - Bahin 1


Mga 20 ka tuig kanhi sa dihang ang World Wide Web bag-o pa lang, ang pagbaton ug personal o negosyo nga web site halos usa ka talagsaon nga kaluho. Uban sa sunod nga pag-uswag sa daghang mga teknolohiya sa web ug ang pagpaila sa dinamikong sulud nga gihatag sa kombinasyon sa mga programa sa kilid sa server ug mga database, ang mga kompanya dili na matagbaw sa pagbaton sa usa ka static nga web site.

Sa ingon, ang mga aplikasyon sa web nahimo nga usa ka kamatuoran - mga programa sa tibuuk nga kahulugan sa pulong nga nagdagan sa ibabaw sa usa ka web server ug ma-access pinaagi sa usa ka web browser.

Aron mapadali ug mas epektibo ang pag-uswag, ang mga balangkas sa web gidisenyo aron matabangan ang mga programmer sa ilang mga paningkamot sa paghimo og mga aplikasyon. Sa laktud, ang usa ka web framework nag-atiman sa komon nga core functionalities sa proseso sa pagpalambo sama sa pagdumala sa user session management, interaksyon sa mga database, ug ang maayong praktis sa pagpabilin sa business logic nga bulag sa display logic, sa paghingalan og pipila ka mga pananglitan.

Niining 3-artikulo nga Django nga serye, among ipaila kanimo ang Django, usa ka sikat nga web framework base sa Python. Tungod niana nga rason, labing menos usa ka gamay nga pamilyar sa kini nga programming language ang gisugyot apan kung ikaw adunay gamay o walay kasinatian niini, kami usab maggiya kanimo sa mga sukaranan.

Pag-instalar sa Django sa CentOS ug Debian Servers

Bisan tuod mahimo nimong i-install ang Django gikan sa Debian (v1.7.7: ang gipalugdang suporta ihunong sa Disyembre 2015) ug Fedora EPEL (v1.6.11: ang gipalugway nga suporta gihunong sa Abril 2015) nga mga repository, ang anaa nga bersyon dili ang pinakabag-o nga lig-on nga LTS (Long Term Support) pagpagawas (v1.8.13, sa Mayo 2016).

Sa kini nga panudlo ipakita namo kanimo kung giunsa ang pag-install sa Django v1.8.13 tungod kay ang gipalawig nga suporta niini gigarantiyahan hangtod sa Abril sa 2018.

Ang girekomendar nga pamaagi sa pag-instalar sa Django mao ang pinaagi sa pip, usa ka popular nga himan alang sa pagdumala sa mga pakete sa Python. Usab, aron makamugna og nahilit nga mga palibot sa Python ug makalikay sa mga panagbangi tali sa mga proyekto nga mahimong magkinahanglan og lain-laing mga bersyon sa mga dependency sa software, ang paggamit sa mga virtual nga palibot gidasig pag-ayo.

Ang mga himan nga gigamit sa paghimo ug pagdumala sa virtual nga Python environment gitawag og virtualenv.

Sunda kini nga mga lakang aron mahimo ang pag-install:

1. Para sa Fedora-based distributions (gawas sa Fedora mismo), pagana una ang EPEL repository:

# yum update && yum install epel-release

2. I-install ang pip ug virtualenv:

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

3. Paghimo og direktoryo aron tipigan ang imong inisyal nga proyekto.

# mkdir ~/myfirstdjangoenv
# cd ~/myfirstdjangoenv

4. Paghimo ug pagpaaktibo sa usa ka virtual nga palibot:

# virtualenv myfirstdjangoenv

Ang sugo sa ibabaw nagmugna og usa ka hugpong sa mga file ug mga subdirektoryo ngadto sa ~/myfirstdjangoenv ug batakan nga nag-instalar sa usa ka lokal nga kopya sa Python ug pip sulod sa kasamtangan nga direktoryo sa pagtrabaho. Sunod, kinahanglan namon nga i-aktibo ang virtual nga palibot nga among gibuhat:

# source myfirstdjangoenv/bin/activate

5. Matikdi kung giunsa pagbag-o ang command prompt pagkahuman sa katapusan nga mando. Panahon na aron i-install ang Django:

Timan-i nga ang screenshot sa ubos gikuha sa miaging bersyon sa kini nga panudlo, apan ang gipaabut nga output parehas kung gi-install ang Django 1.8.13):

# pip install Django==1.8.13

Mahimo nimong susihon ang bersyon sa Django pinaagi sa paglansad sa usa ka kabhang sa Python gikan sa imong karon nga direktoryo sa pagtrabaho:

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

(Pag-usab, ang sugo sa ibabaw kinahanglan nga ibalik ang 1.8.13 kung susihon ang karon nga bersyon sa Django).

Aron makagawas sa prompt sa Python, i-type ang:

>>> exit() 

ug pindota ang Enter. Sunod, i-off ang virtual nga palibot:

# deactivate

Palihug timan-i nga samtang ang virtual nga palibot nagpabilin nga dili aktibo, ang Django dili magamit:

Giunsa Paghimo usa ka Unang Proyekto sa Django

Aron makahimo og usa ka proyekto sulod sa virtual nga palibot nga atong gibuhat sa sayo pa, kini kinahanglan nga activate:

# source myfirstdjangoenv/bin/activate

Sunod, ang balangkas maghimo sa tibuuk nga istruktura sa direktoryo aron tipigan ang imong proyekto. Aron mahimo kini, kinahanglan nimo nga modagan.

# django-admin startproject myfirstdjangoproject

Ang sugo sa ibabaw maghimo ug direktoryo nga ginganlag myfirstdjangoproject sulod sa imong kasamtangang working directory.

diin makit-an nimo ang usa ka file nga ginganlag manage.py (usa ka utility nga makatabang kanimo sa pagdumala sa imong proyekto sa ulahi) ug laing subdirectory (~/myfirstdjangoenv/myfirstdjangoproject/myfirstdjangoproject). Kining katapusang subdirectory magsilbi nga sudlanan sa mga file sa proyekto.

Samtang ang nahabilin nga mga file adunay tinuud nga kahulugan pagkahuman gisusi namon ang pipila nga Python aron magsugod sa pagsulat sa usa ka tinuud nga aplikasyon sa web, angayan ug maayo nga hinumdoman ang mga yawe nga mga file nga makit-an sa sulod sa direktoryo sa sulud sa proyekto:

  1. myfirstdjangoproject/__init__.py: Kining walay sulod nga payl nagsulti sa Python nga kini nga direktoryo kinahanglang isipon nga Python package.
  2. myfirstdjangoproject/settings.py: Piho nga mga setting para niining proyekto sa Django.
  3. myfirstdjangoproject/urls.py: usa ka TOC (Table Of Contents) sa imong Django-powered site.
  4. myfirstdjangoproject/wsgi.py: Usa ka entry-point para sa WSGI-compatible nga mga web server aron pagsilbi sa imong proyekto.

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

Dugang pa, ang Django adunay gaan nga built-in nga web server (gisulat sa Python susama sa Python SimpleHTTP, unsa pa?) niining partikular nga yugto.

Bisan pa, kinahanglan nimo mahibal-an nga dili kini angay alang sa usa ka palibot sa produksiyon - alang lamang sa pag-uswag. Aron ilunsad ang imong bag-ong nahimo nga proyekto, usba ang imong kasamtangan nga direktoryo sa pagtrabaho ngadto sa direktoryo sa sudlanan alang sa imong proyekto (~/myfirstdjangoenv/myfirstdjangoproject) ug pagdagan:

# python manage.py runserver 0.0.0.0:8000

Kung nagdagan ka sa mosunod nga sayup:

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

Buhata ang giingon niini:

# python manage.py migrate

ug unya sugdi pag-usab ang server:

# python manage.py runserver 0.0.0.0:8000

Atong hisgotan ang konsepto sa mga paglalin sa sunod nga mga artikulo niini nga serye, aron dili nimo ibaliwala ang mensahe sa sayup sa pagkakaron.

Sa bisan unsa nga panghitabo, mahimo nimong usbon ang default port diin ang built-in nga web server maminaw. Pinaagi sa paggamit sa 0.0.0.0 isip network interface aron paminawon, gitugutan namo ang ubang mga kompyuter sa samang network nga maka-access sa project user interface (kon 127.0.0.1 na hinuon ang imong gamiton, mahimo ra nimo nga ma-access ang UI gikan sa localhost).

Mahimo usab nimo usbon ang pantalan sa lain nga imong gipili, apan kinahanglan nimo nga sigurohon nga ang trapiko pinaagi sa ingon nga pantalan gitugotan pinaagi sa imong firewall:

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

Siyempre, wala kini giingon nga kinahanglan nimo nga i-update ang gitugotan nga pantalan kung gipili nimo nga mogamit usa ka lahi samtang naglansad sa gaan nga web server.

Kinahanglan nimong makita ang mosunod nga output sa imong terminal:

# python manage.py runserver 0.0.0.0:8000

Niini nga punto, mahimo nimong ablihan ang imong paborito nga web browser ug mag-navigate sa IP address sa makina diin imong gi-install ang Django nga gisundan sa numero sa port. Sa akong kaso, kini usa ka Debian Jessie nga kahon nga adunay IP 192.168.0.25 ug naminaw sa port 8000:

http://192.168.0.25:8000

Samtang kini usa ka maayo nga butang nga among nakompleto ang inisyal nga pag-setup sa usa ka proyekto, adunay daghan pa nga trabaho nga nahabilin, ingon sa gipakita sa mensahe sa ibabaw.

Summary

Sa kini nga giya among gipasabut kung giunsa ang pag-install ug pag-configure sa usa ka virtual nga palibot alang sa Django, usa ka daghang gamit nga open source web framework nga gibase sa Python.

Dili igsapayan kung ikaw usa ka developer sa aplikasyon o usa ka tagdumala sa sistema, gusto nimo nga i-bookmark kini nga artikulo ug ang nahabilin sa kini nga serye tungod kay lagmit nga sa usa ka punto o sa lain kinahanglan nimo nga tagdon ang panginahanglan sa ingon nga himan alang sa imong adlaw-adlaw nga mga buluhaton.

Sa mosunod nga mga artikulo niini nga serye atong hisgotan kon unsaon pagtukod sa atong nahimo na sa paghimo sa usa ka yano, apan magamit, web application gamit ang Django ug Python.

Sama sa kanunay, ayaw pagpanuko sa paghulog kanamo og usa ka mubo nga sulat kung adunay ka mga pangutana bahin sa kini nga artikulo o mga sugyot aron mapauswag. Kami nagpaabut nga makadungog gikan kanimo!