Installere og konfigurere Django Web Framework med virtuelle miljøer i CentOS/Debian - Del 1


“Denne artikkelen er revidert og oppdatert med siste versjon av Django – mai 2016”

For rundt 20 år siden, da World Wide Web fortsatt var i sin spede begynnelse, var det nesten en sjelden luksus å ha et personlig eller forretningsnettsted. Med den påfølgende utviklingen av flere nettteknologier og introduksjonen av dynamisk innhold levert av kombinasjonen av server-side programmer og databaser, kunne bedrifter ikke lenger være fornøyd med å ha et statisk nettsted.

Dermed ble nettapplikasjoner en realitet – programmer i ordets fulle betydning kjører på toppen av en webserver og er tilgjengelige via en nettleser.

For å gjøre utviklingen enklere og mer effektiv ble nettrammeverk utviklet for å hjelpe programmerere i deres forsøk på å lage applikasjoner. Kort fortalt tar et nettrammeverk seg av vanlige kjernefunksjoner i utviklingsprosessen som å håndtere brukersesjonsadministrasjon, interaksjon med databaser og den gode praksisen med å holde forretningslogikk atskilt fra visningslogikk, for å nevne noen eksempler.

I denne 3-artikkels Django-serien vil vi introdusere deg til Django, et populært nettrammeverk basert på Python. Av den grunn foreslås i det minste litt kjennskap til dette programmeringsspråket, men hvis du har liten eller ingen erfaring med det, vil vi også lede deg gjennom det grunnleggende.

Installere Django i CentOS og Debian-servere

Selv om du kan installere Django fra både Debian (v1.7.7: utvidet støtte vil bli avviklet desember 2015) og Fedora EPEL ( >v1.6.11: utvidet støtte ble avviklet på april 2015) repositories, den tilgjengelige versjonen er ikke den siste stabile LTS (Long Term Support)-utgivelsen (v1.8.13, fra og med mai 2016).

I denne opplæringen vil vi vise deg hvordan du installerer Django v1.8.13 siden utvidet støtte er garantert til minst april 2018.

Den anbefalte metoden for å installere Django er gjennom pip, et populært verktøy for å administrere Python-pakker. For å skape isolerte Python-miljøer og unngå konflikter mellom prosjekter som kan kreve forskjellige versjoner av programvareavhengigheter, oppfordres det også sterkt til bruk av virtuelle miljøer.

Verktøyene som brukes til å lage og administrere virtuelle Python-miljøer kalles virtualenv.

Følg disse trinnene for å utføre installasjonen:

1. For Fedora-baserte distribusjoner (unntatt i selve Fedora), aktiver først EPEL-depotet:

yum update && yum install epel-release

2. Installer pip og virtualenv:

Fedora-baserte distroer:

yum install python-pip python-virtualenv
OR 
dnf install python-pip python-virtualenv
Debian og derivater:
aptitude update && aptitude install python-pip virtualenv

3. Opprett en katalog for å lagre det første prosjektet.

mkdir ~/myfirstdjangoenv
cd ~/myfirstdjangoenv

4. Opprett og aktiver et virtuelt miljø:

virtualenv myfirstdjangoenv

Kommandoen ovenfor oppretter en haug med filer og underkataloger i ~/myfirstdjangoenv og installerer i utgangspunktet en lokal kopi av Python og pip i den gjeldende arbeidskatalogen . Deretter må vi aktivere det virtuelle miljøet vi nettopp opprettet:

source myfirstdjangoenv/bin/activate

5. Legg merke til hvordan ledeteksten endres etter den siste kommandoen. Det er nå på tide å installere Django:

Merk at skjermbildet nedenfor ble tatt under en tidligere versjon av denne opplæringen, men forventet produksjon er den samme når du installerer Django 1.8.13 ):


pip install Django==1.8.13

Du kan sjekke Django-versjonen ved å starte et Python-skall fra din nåværende arbeidskatalog:

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

(Igjen, kommandoen ovenfor skal returnere 1.8.13 når du sjekker gjeldende Django-versjon).

For å avslutte Python-ledeteksten, skriv inn:

>>> exit() 

og trykk Enter. Deretter slår du av det virtuelle miljøet:

deactivate

Vær oppmerksom på at mens det virtuelle miljøet forblir deaktivert, er ikke Django tilgjengelig:

Hvordan lage et første prosjekt i Django

For å lage et prosjekt i det virtuelle miljøet vi opprettet tidligere, må det aktiveres:

source myfirstdjangoenv/bin/activate

Deretter vil rammeverket opprette hele katalogstrukturen for å lagre prosjektet ditt. For å gjøre dette, må du løpe.

django-admin startproject myfirstdjangoproject

Kommandoen ovenfor vil opprette en katalog som heter myfirstdjangoproject i din nåværende arbeidskatalog.

hvor du finner en fil som heter manage.py (et verktøy som hjelper deg med å administrere prosjektet ditt senere) og en annen underkatalog (~/myfirstdjangoenv/myfirstdjangoproject/myfirstdjangoproject). Denne siste underkatalogen vil fungere som beholder for prosjektfilene.

Mens resten av filene vil gi virkelig mening etter at vi har gjennomgått litt Python for å begynne å skrive en ekte webapplikasjon, er det verdt og godt å legge merke til nøkkelfilene som vil bli funnet i en prosjektbeholderkatalog:

  1. myfirstdjangoproject/__init__.py: Denne tomme filen forteller Python at denne katalogen bør betraktes som en Python-pakke.
  2. myfirstdjangoproject/settings.py: Spesifikke innstillinger for dette Django-prosjektet.
  3. myfirstdjangoproject/urls.py: en TOC (innholdsfortegnelse) for ditt Django-drevne nettsted.
  4. myfirstdjangoproject/wsgi.py: Et inngangspunkt for WSGI-kompatible webservere for å betjene prosjektet ditt.
ls 
ls -l myfirstdjangoproject
ls -l myfirstdjangoproject/myfirstdjangoproject

I tillegg har Django en lett innebygd webserver (skrevet i Python som ligner på Python SimpleHTTP, hva annet?) som kan brukes til å teste applikasjonene dine under utviklingen prosess uten å måtte håndtere oppgaven med å sette en webserver på dette bestemte stadiet.

Du må imidlertid vite at dette ikke er egnet for et produksjonsmiljø – bare for utvikling. For å starte det nyopprettede prosjektet, endre gjeldende arbeidskatalog til containerkatalogen for prosjektet (~/myfirstdjangoenv/myfirstdjangoproject) og kjør:

python manage.py runserver 0.0.0.0:8000

Hvis du får følgende feil:

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

Gjør det som står:

python manage.py migrate

og start serveren på nytt:

python manage.py runserver 0.0.0.0:8000

Vi vil dekke begrepet migreringer i de neste artiklene i denne serien, slik at du kan se bort fra feilmeldingen foreløpig.

Uansett kan du endre standardporten der den innebygde webserveren skal lytte. Ved å bruke 0.0.0.0 som nettverksgrensesnitt for å lytte på, lar vi andre datamaskiner i samme nettverk få tilgang til prosjektets brukergrensesnitt (hvis du bruker 127.0.0.1 i stedet, du vil bare kunne få tilgang til brukergrensesnittet fra localhost).

Du kan også endre porten til en annen port du velger, men du må også sørge for at trafikk gjennom en slik port tillates gjennom brannmuren din:

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

Selvfølgelig er det en selvfølge at du må oppdatere den tillatte porten hvis du velger å bruke en annen mens du starter den lette webserveren.

Du bør se følgende utgang i terminalen din:

python manage.py runserver 0.0.0.0:8000

På dette tidspunktet kan du åpne favorittnettleseren din og navigere til IP-adressen til maskinen der du installerte Django etterfulgt av portnummeret. I mitt tilfelle er det en Debian Jessie-boks med IP 192.168.0.25 og lytter på port 8000:

http://192.168.0.25:8000

Selv om det er en flott ting at vi var i stand til å fullføre det første oppsettet av et prosjekt, er det fortsatt mye arbeid igjen å gjøre, som angitt i meldingen ovenfor.

Sammendrag

I denne veiledningen har vi forklart hvordan du installerer og konfigurerer et virtuelt miljø for Django, et allsidig åpen kildekode-nettverk basert på Python.

Uansett om du er en applikasjonsutvikler eller en systemadministrator, vil du ønske å bokmerke denne artikkelen og resten av denne serien fordi sjansen er stor for at du på et eller annet tidspunkt må vurdere behovet for et slikt verktøy for dine daglige oppgaver.

I de følgende artiklene i denne serien vil vi diskutere hvordan vi kan bygge videre på det vi allerede har oppnådd for å lage en enkel, men funksjonell nettapplikasjon ved hjelp av Django og Python.

Som alltid, ikke nøl med å sende oss et notat hvis du har spørsmål om denne artikkelen eller forslag til forbedring. Vi ser frem til å høre fra deg!