Zoeken op website

Django Web Framework installeren en configureren met virtuele omgevingen in CentOS/Debian - Deel 1


"Dit artikel is herzien en bijgewerkt met de nieuwste versie van Django – mei 2016"

Zo'n twintig jaar geleden, toen het World Wide Web nog in de kinderschoenen stond, was het hebben van een persoonlijke of zakelijke website bijna een zeldzame luxe. Met de daaropvolgende ontwikkeling van verschillende webtechnologieën en de introductie van dynamische inhoud die wordt geboden door de combinatie van server-side programma's en databases, konden bedrijven niet langer tevreden zijn met het hebben van een statische website.

Zo werden webapplicaties werkelijkheid: programma's in de volle zin van het woord die op een webserver draaien en toegankelijk zijn via een webbrowser.

Om de ontwikkeling eenvoudiger en effectiever te maken, zijn webframeworks ontworpen om programmeurs te helpen bij hun pogingen om applicaties te maken. Kortom, een webframework zorgt voor gemeenschappelijke kernfunctionaliteiten in het ontwikkelingsproces, zoals het omgaan met gebruikerssessiebeheer, interactie met databases en de goede praktijk om bedrijfslogica gescheiden te houden van displaylogica, om maar een paar voorbeelden te noemen.

In deze Django-serie van 3 artikelen laten we je kennismaken met Django, een populair webframework gebaseerd op Python. Om die reden wordt op zijn minst enige bekendheid met deze programmeertaal aanbevolen, maar als je er weinig tot geen ervaring mee hebt, leiden we je ook door de basis.

Django installeren op CentOS- en Debian-servers

Hoewel je Django kunt installeren vanaf zowel Debian (v1.7.7: uitgebreide ondersteuning wordt stopgezet op december 2015) als Fedora EPEL ( >v1.6.11: uitgebreide ondersteuning is stopgezet voor de opslagplaatsen van april 2015, de beschikbare versie is niet de nieuwste stabiele LTS-release (Long Term Support) (v1.8.13, vanaf mei 2016).

In deze tutorial laten we u zien hoe u Django v1.8.13 installeert, aangezien de uitgebreide ondersteuning gegarandeerd is tot ten minste april 2018.

De aanbevolen methode om Django te installeren is via pip, een populaire tool voor het beheren van Python-pakketten. Om geïsoleerde Python-omgevingen te creëren en conflicten tussen projecten te vermijden die mogelijk verschillende versies van software-afhankelijkheden vereisen, wordt het gebruik van virtuele omgevingen sterk aangemoedigd.

De tools die worden gebruikt om virtuele Python-omgevingen te creëren en te beheren worden virtualenv genoemd.

Volg deze stappen om de installatie uit te voeren:

1. Voor Fedora-gebaseerde distributies (behalve in Fedora zelf), schakel je eerst de EPEL repository in:

yum update && yum install epel-release

2. Installeer pip en virtualenv:

Op Fedora gebaseerde distributies:

yum install python-pip python-virtualenv
OR 
dnf install python-pip python-virtualenv
Debian en derivaten:
aptitude update && aptitude install python-pip virtualenv

3. Maak een map om uw oorspronkelijke project op te slaan.

mkdir ~/myfirstdjangoenv
cd ~/myfirstdjangoenv

4. Creëer en activeer een virtuele omgeving:

virtualenv myfirstdjangoenv

Het bovenstaande commando maakt een aantal bestanden en submappen aan in ~/myfirstdjangoenv en installeert feitelijk een lokale kopie van Python en pip binnen de huidige werkmap . Vervolgens moeten we de virtuele omgeving activeren die we zojuist hebben gemaakt:

source myfirstdjangoenv/bin/activate

5. Merk op hoe de opdrachtprompt verandert na de laatste opdracht. Het is nu tijd om Django te installeren:

Merk op dat de onderstaande schermafbeelding is gemaakt tijdens een eerdere versie van deze tutorial, maar de verwachte uitvoer is hetzelfde bij het installeren van Django 1.8.13 ):


pip install Django==1.8.13

Je kunt de Django-versie controleren door een Python-shell te starten vanuit je huidige werkmap:

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

(Nogmaals, de bovenstaande opdracht zou 1.8.13 moeten retourneren bij het controleren van de huidige Django-versie).

Om de Python-prompt af te sluiten, typt u:

>>> exit() 

en druk op Enter. Schakel vervolgens de virtuele omgeving uit:

deactivate

Houd er rekening mee dat Django niet beschikbaar is, hoewel de virtuele omgeving gedeactiveerd blijft:

Hoe u een eerste project in Django maakt

Om een project te creëren binnen de virtuele omgeving die we eerder hebben gemaakt, moet het worden geactiveerd:

source myfirstdjangoenv/bin/activate

Vervolgens zal het raamwerk de volledige directorystructuur creëren om uw project op te slaan. Om dit te doen, moet je rennen.

django-admin startproject myfirstdjangoproject

Met het bovenstaande commando wordt een map aangemaakt met de naam myfirstdjangoproject in uw huidige werkmap.

waar u een bestand vindt met de naam manage.py (een hulpprogramma waarmee u uw project later kunt beheren) en een andere submap (~/myfirstdjangoenv/myfirstdjangoproject/myfirstdjangoproject). Deze laatste submap zal dienen als container voor de projectbestanden.

Hoewel de rest van de bestanden pas echt zinvol zullen zijn nadat we wat Python hebben beoordeeld om te beginnen met het schrijven van een echte webapplicatie, is het de moeite waard om kennis te nemen van de belangrijkste bestanden die in een projectcontainermap te vinden zijn:

  1. myfirstdjangoproject/__init__.py: dit lege bestand vertelt Python dat deze map als een Python-pakket moet worden beschouwd.
  2. myfirstdjangoproject/settings.py: specifieke instellingen voor dit Django-project.
  3. myfirstdjangoproject/urls.py: een TOC (inhoudsopgave) van uw door Django ondersteunde site.
  4. myfirstdjangoproject/wsgi.py: een toegangspunt voor WSGI-compatibele webservers om uw project te bedienen.
ls 
ls -l myfirstdjangoproject
ls -l myfirstdjangoproject/myfirstdjangoproject

Bovendien heeft Django een lichtgewicht ingebouwde webserver (geschreven in Python vergelijkbaar met Python SimpleHTTP, wat nog meer?) die kan worden gebruikt om uw applicaties te testen tijdens de ontwikkeling proces zonder dat u zich in dit specifieke stadium bezig hoeft te houden met de taak om een webserver in te stellen.

Je moet echter weten dat dit niet geschikt is voor een productieomgeving – alleen voor ontwikkeling. Om uw nieuw gemaakte project te starten, wijzigt u uw huidige werkmap in de containermap voor uw project (~/myfirstdjangoenv/myfirstdjangoproject) en voert u het volgende uit:

python manage.py runserver 0.0.0.0:8000

Als u de volgende fout tegenkomt:

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

Doe wat er staat:

python manage.py migrate

en start vervolgens de server opnieuw:

python manage.py runserver 0.0.0.0:8000

We zullen het concept van migraties behandelen in de volgende artikelen van deze serie, zodat u de foutmelding voorlopig kunt negeren.

In ieder geval kunt u de standaardpoort wijzigen waar de ingebouwde webserver naar luistert. Door 0.0.0.0 als netwerkinterface te gebruiken om naar te luisteren, geven we andere computers in hetzelfde netwerk toegang tot de gebruikersinterface van het project (als u in plaats daarvan 127.0.0.1 gebruikt, u heeft alleen toegang tot de gebruikersinterface vanaf localhost).

U kunt de poort ook wijzigen in een andere poort naar keuze, maar u moet er ook voor zorgen dat verkeer via een dergelijke poort door uw firewall wordt toegelaten:

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

Het spreekt uiteraard voor zich dat u de toegestane poort moet bijwerken als u ervoor kiest een andere poort te gebruiken tijdens het starten van de lichtgewicht webserver.

U zou de volgende uitvoer in uw terminal moeten zien:

python manage.py runserver 0.0.0.0:8000

Op dit punt kunt u uw favoriete webbrowser openen en naar het IP-adres navigeren van de machine waarop u Django hebt geïnstalleerd, gevolgd door het poortnummer. In mijn geval is het een Debian Jessie box met IP 192.168.0.25 en luisterend op poort 8000:

http://192.168.0.25:8000

Hoewel het geweldig is dat we de eerste opzet van een project hebben kunnen voltooien, is er nog veel werk te doen, zoals aangegeven in het bericht hierboven.

Samenvatting

In deze handleiding hebben we uitgelegd hoe u een virtuele omgeving installeert en configureert voor Django, een veelzijdig open source webframework gebaseerd op Python.

Ongeacht of u een applicatieontwikkelaar of een systeembeheerder bent, u zult dit artikel en de rest van deze serie als bladwijzer willen opslaan, omdat de kans groot is dat u op een gegeven moment de noodzaak van een dergelijk hulpmiddel voor uw dagelijkse taken zult moeten overwegen.

In de volgende artikelen van deze serie zullen we bespreken hoe we kunnen voortbouwen op wat we al hebben bereikt om een eenvoudige, maar functionele webapplicatie te maken met behulp van Django en Python.

Aarzel zoals altijd niet om ons een bericht te sturen als u vragen heeft over dit artikel of suggesties voor verbetering heeft. Wij horen graag van u!