„Django Web Framework“ su virtualiomis aplinkomis diegimas ir konfigūravimas „CentOS“/„Debian“ – 1 dalis


„Šis straipsnis peržiūrėtas ir atnaujintas naudojant naujausią Django versiją – 2016 m. gegužės mėn.“

Maždaug prieš 20 metų, kai World Wide Web dar tik kūrėsi, turėti asmeninę ar verslo svetainę buvo beveik reta prabanga. Vėliau plėtojant kelias žiniatinklio technologijas ir įdiegus dinamišką turinį, kurį teikia serverio programos ir duomenų bazių derinys, įmonės nebegalėjo tenkintis statine svetaine.

Taip žiniatinklio programos tapo realybe – programos visa to žodžio prasme veikia žiniatinklio serverio viršuje ir pasiekiamos per interneto naršyklę.

Kad kūrimas būtų lengvesnis ir veiksmingesnis, buvo sukurtos žiniatinklio sistemos, kurios padėtų programuotojams kurti programas. Trumpai tariant, žiniatinklio sistema rūpinasi bendromis pagrindinėmis kūrimo proceso funkcijomis, tokiomis kaip vartotojo seansų valdymas, sąveika su duomenų bazėmis ir gera praktika, kaip verslo logiką atskirti nuo rodymo logikos, kad būtų galima paminėti kelis pavyzdžius.

Šioje 3 straipsnių Django serijoje supažindinsime su Django – populiaria žiniatinklio sistema, pagrįsta Python. Dėl šios priežasties siūloma bent šiek tiek susipažinti su šia programavimo kalba, bet jei neturite patirties su ja, taip pat supažindinsime su pagrindais.

„Django“ diegimas „CentOS“ ir „Debian“ serveriuose

Nors galite įdiegti Django ir iš Debian (v1.7.7: išplėstinis palaikymas bus nutrauktas 2015 m. gruodžio mėn.), ir iš Fedora EPEL ( >v1.6.11: išplėstinis palaikymas nutrauktas 2015 m. balandžio mėn.) saugyklose, pasiekiama versija nėra naujausia stabili LTS (ilgalaikio palaikymo) versija (v1.8.13)., nuo 2016 m. gegužės mėn.).

Šioje mokymo programoje parodysime, kaip įdiegti Django v1.8.13, nes pratęstas jo palaikymas garantuojamas bent iki 2018 m. balandžio mėn.

Rekomenduojamas Django diegimo būdas yra pip – populiarus Python paketų tvarkymo įrankis. Taip pat, siekiant sukurti izoliuotas Python aplinkas ir išvengti konfliktų tarp projektų, kuriems gali prireikti skirtingų programinės įrangos priklausomybių versijų, labai rekomenduojama naudoti virtualias aplinkas.

Virtualioms Python aplinkoms kurti ir tvarkyti naudojami įrankiai vadinami virtualenv.

Norėdami atlikti diegimą, atlikite šiuos veiksmus:

1. Jei platinami Fedora pagrindu (išskyrus pačią Fedora), pirmiausia įgalinkite EPEL saugyklą:

yum update && yum install epel-release

2. Įdiekite pip ir virtualenv:

„Fedora“ pagrindu veikiantys platinimai:

yum install python-pip python-virtualenv
OR 
dnf install python-pip python-virtualenv
Debianas ir dariniai:
aptitude update && aptitude install python-pip virtualenv

3. Sukurkite katalogą pradiniam projektui saugoti.

mkdir ~/myfirstdjangoenv
cd ~/myfirstdjangoenv

4. Sukurkite ir suaktyvinkite virtualią aplinką:

virtualenv myfirstdjangoenv

Aukščiau pateikta komanda sukuria daugybę failų ir pakatalogių į ~/myfirstdjangoenv ir iš esmės įdiegia vietinę Python ir pip kopiją dabartiniame darbiniame kataloge . Tada turime suaktyvinti ką tik sukurtą virtualią aplinką:

source myfirstdjangoenv/bin/activate

5. Atkreipkite dėmesį, kaip komandų eilutė pasikeičia po paskutinės komandos. Dabar laikas įdiegti „Django“:

Atminkite, kad toliau pateikta ekrano kopija buvo padaryta naudojant ankstesnę šios mokymo programos versiją, bet diegiant Django 1.8.13 laukiama išvestis yra tokia pati. ):


pip install Django==1.8.13

Galite patikrinti Django versiją paleisdami Python apvalkalą iš dabartinio darbo katalogo:

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

(Vėlgi, anksčiau pateikta komanda turėtų grąžinti 1.8.13, kai tikrinama dabartinė „Django“ versija).

Norėdami išeiti iš Python raginimo, įveskite:

>>> exit() 

ir paspauskite Enter. Tada išjunkite virtualią aplinką:

deactivate

Atminkite, kad nors virtuali aplinka lieka išjungta, „Django“ nepasiekiamas:

Kaip sukurti pirmąjį projektą „Django“.

Norėdami sukurti projektą anksčiau sukurtoje virtualioje aplinkoje, jį reikia suaktyvinti:

source myfirstdjangoenv/bin/activate

Tada sistema sukurs visą katalogo struktūrą, kurioje bus saugomas jūsų projektas. Norėdami tai padaryti, turėsite bėgti.

django-admin startproject myfirstdjangoproject

Aukščiau pateikta komanda dabartiniame darbiniame kataloge sukurs katalogą pavadinimu myfirstdjangoproject.

kur rasite failą pavadinimu manage.py (priemonę, kuri padės vėliau valdyti projektą) ir kitą pakatalogį (~/myfirstdjangoenv/myfirstdjangoproject/myfirstdjangoproject). Šis paskutinis pakatalogis bus projekto failų konteineris.

Nors likusieji failai bus tikrai prasmingi po to, kai peržiūrėsime kai kuriuos Python, kad pradėtume rašyti tikrą žiniatinklio programą, verta atkreipti dėmesį į pagrindinius failus, kurie bus rasti projekto konteinerio kataloge:

  1. myfirstdjangoproject/__init__.py: šis tuščias failas nurodo Python, kad šis katalogas turėtų būti laikomas Python paketu.
  2. myfirstdjangoproject/settings.py: konkretūs šio „Django“ projekto nustatymai.
  3. myfirstdjangoproject/urls.py: jūsų „Django“ palaikomos svetainės TOC (turinys).
  4. myfirstdjangoproject/wsgi.py: su WSGI suderinamų žiniatinklio serverių įėjimo taškas jūsų projektui aptarnauti.
ls 
ls -l myfirstdjangoproject
ls -l myfirstdjangoproject/myfirstdjangoproject

Be to, Django turi lengvą integruotą žiniatinklio serverį (parašytą Python, panašiai kaip Python SimpleHTTP, kas dar?), kurį galima naudoti programoms išbandyti kuriant. procesas, neatliekant užduoties nustatyti žiniatinklio serverį šiame konkrečiame etape.

Tačiau reikia žinoti, kad tai netinka gamybinei aplinkai – tik plėtrai. Norėdami paleisti naujai sukurtą projektą, pakeiskite dabartinį darbo katalogą į projekto sudėtinio rodinio katalogą (~/myfirstdjangoenv/myfirstdjangoproject) ir paleiskite:

python manage.py runserver 0.0.0.0:8000

Jei susiduriate su šia klaida:

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

Daryk tai, kas parašyta:

python manage.py migrate

ir vėl paleiskite serverį:

python manage.py runserver 0.0.0.0:8000

Perkėlimų sąvoką aptarsime kituose šios serijos straipsniuose, todėl kol kas galite nepaisyti klaidos pranešimo.

Bet kuriuo atveju galite pakeisti numatytąjį prievadą, kuriame klausys įtaisytasis žiniatinklio serveris. Naudodami 0.0.0.0 kaip tinklo sąsają klausymui, leidžiame kitiems tame pačiame tinkle esantiems kompiuteriams pasiekti projekto vartotojo sąsają (jei vietoje to naudojate 127.0.0.1, UI galėsite pasiekti tik iš „localhost“).

Taip pat galite pakeisti prievadą į kitą pasirinktą, bet taip pat turėsite įsitikinti, kad srautas per tokį prievadą yra leidžiamas per jūsų užkardą:

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

Žinoma, savaime suprantama, kad jums reikės atnaujinti leistiną prievadą, jei pasirinksite naudoti kitą prievadą paleisdami lengvą žiniatinklio serverį.

Savo terminale turėtumėte matyti šią išvestį:

python manage.py runserver 0.0.0.0:8000

Šiuo metu galite atidaryti savo mėgstamą žiniatinklio naršyklę ir pereiti į įrenginio, kuriame įdiegėte „Django“, IP adresą ir prievado numerį. Mano atveju tai yra Debian Jessie dėžutė su IP 192.168.0.25 ir klausymas per prievadą 8000:

http://192.168.0.25:8000

Nors puiku, kad pavyko užbaigti pradinę projekto sąranką, dar liko daug darbo, kaip nurodyta aukščiau esančiame pranešime.

Santrauka

Šiame vadove paaiškinome, kaip įdiegti ir konfigūruoti virtualią Django aplinką – universalią atvirojo kodo žiniatinklio sistemą, pagrįstą Python.

Nepriklausomai nuo to, ar esate programų kūrėjas, ar sistemos administratorius, norėsite pažymėti šį straipsnį ir likusią šios serijos dalį, nes tikėtina, kad vienu ar kitu momentu turėsite apsvarstyti tokio įrankio poreikį atliekant kasdienes užduotis.

Tolesniuose šios serijos straipsniuose aptarsime, kaip remtis tuo, ką jau padarėme, kuriant paprastą, tačiau funkcionalią žiniatinklio programą naudojant Django ir Python.

Kaip visada, nedvejodami atsiųskite mums pranešimą, jei turite klausimų apie šį straipsnį ar pasiūlymų, kaip jį patobulinti. Lauksime jūsų žinučių!