Django is een high-level webframework dat de snelle ontwikkeling van veilige en onderhoudbare websites mogelijk maakt. Het is een gratis en open-source framework geschreven in Python. Django is ook populair vanwege extra functies zoals prestaties, beveiliging, schaalbaarheid, portabiliteit en onderhoudbaarheid.
Deze gids zal demonstreren hoe u Django installeert en een eenvoudige web-app opzet op Ubuntu 20.04.
Django op Ubuntu
Er zijn meerdere manieren om Django op het systeem te installeren. Elke methode is geschikt voor een ander doel.
- Globale installatie: Django is direct beschikbaar vanuit de officiële Ubuntu-pakketbronnen. We kunnen het rechtstreeks installeren met de APT-pakketbeheerder. Hoewel de installatiemethode eenvoudig is, biedt deze minder flexibiliteit dan andere methoden. Bovendien bevat deze mogelijk niet de nieuwste versie van het framework.
- Installeren met
pipin een virtuele omgeving: Met behulp van tools zoalsvenvenvirtualenv, kunnen we een virtuele omgeving opzetten en Django daar installeren. Het voordeel van deze aanpak is dat het geen invloed heeft op het grotere systeem. Het maakt ook aanpassing en pakketten per project mogelijk. Het is de meest praktische en aanbevolen methode om met Django te werken. - De Django-ontwikkelingsversie installeren: Django is ook beschikbaar op GitHub. De nieuwste ontwikkelingsversie bevat de nieuwste functies/fixes. Dit gaat echter ten koste van mogelijke prestatie- en stabiliteitsproblemen.
Deze gids verwacht dat u een correct geconfigureerde Ubuntu-server heeft. Als u nog geen Ubuntu-server heeft, kunt u onze gids volgen over hoe u uw eigen Ubuntu-server instelt.
Django installeren op Ubuntu
1. Globale installatie met behulp van de pakketbeheerder
Django is direct beschikbaar vanuit de officiële pakketbronnen. Het installatieproces is vrij eenvoudig. Werk eerst de APT-pakketindex bij:
|
1 |
$ sudo apt update |
Controleer vervolgens de geïnstalleerde versie van Python. Standaard wordt Ubuntu 20.04 geleverd met Python 3.8:
|
1 |
$ python3 -V |
Nu zijn we klaar om Django te installeren:
|
1 |
$ sudo apt install python3-django |
We can verify if the installation was successful. Run the following command to check the Django version:
|
1 |
$ django-admin --version |
Dit bevestigt dat Django succesvol is geïnstalleerd. Let op dat de Django-versie niet de nieuwste stabiele release is. Op het moment van schrijven is de nieuwste beschikbare versie van Django v3.2.5 (LTS-release).
2. Django installeren met pip (in een virtuele omgeving)
Dit is de aanbevolen manier om Django te installeren omdat het de meeste flexibiliteit biedt. We zullen de virtuele omgeving genereren met behulp van de venv module die deel uitmaakt van de standaardbibliotheek van Python 3. Hiermee kunt u virtuele Python-omgevingen maken en Python-pakketten installeren zonder wijzigingen elders in het systeem te veroorzaken. U kunt talloze virtuele omgevingen hebben met unieke configuraties.
Laten we beginnen. Eerst hebben we de Python pip en venv modules nodig:
|
1 2 |
$ sudo apt update $ sudo apt install python3-pip python3-venv |
De modules zijn succesvol geïnstalleerd. Nu maken we een speciale map aan voor de virtuele omgeving:
|
1 |
$ mkdir -pv ~/sample_project |
Wijzig vervolgens de actieve map naar de nieuwe map:
|
1 |
$ cd ~/sample_project |
Nu kunnen we venv opdracht geven om een virtuele omgeving in de map op te zetten. Wat betreft de naam van de omgeving, deze moet beschrijvend zijn:
|
1 |
$ python3 -m venv sample_project_env |
De venv module maakt een kopie van Python en pip in een geïsoleerde mappenstructuur binnen de projectmap. Deze zal een map bevatten met de geselecteerde naam die de bestandshiërarchie bevat waarin alle pakketten zijn geïnstalleerd.
Om extra pakketten te installeren, moeten we de omgeving activeren:
|
1 |
$ source sample_project_env/bin/activate |
De shell-prompt zou moeten veranderen in zoiets als dit:
Binnen de virtuele omgeving kunnen we nu Django installeren:
|
1 |
$ pip install django |
Controleer of de installatie is geslaagd:
|
1 |
$ django-admin --version |
Om de virtuele omgeving te verlaten, voer je het volgende commando uit:
|
1 |
$ deactivate |
3. De Django-ontwikkelversie installeren
De Django-ontwikkelversie is direct beschikbaar op GitHub. We gebruiken git om deze te klonen en te implementeren binnen een virtuele omgeving.
Zorg er eerst voor dat de benodigde tools zijn geïnstalleerd. Het volgende commando installeert venv en pip (Python-modules) en git:
|
1 |
$ sudo apt update && sudo apt install python3-pip python3-venv git |
Kloon vervolgens de Django-repository. Deze bevat de nieuwste functies en bugfixes (ten koste van de stabiliteit). We klonen deze naar een map ~/django-dev:
|
1 |
$ git clone git://github.com/django/django ~/django-dev |
Wijzig de huidige map naar de gekloonde repository:
|
1 |
$ cd ~/django-dev |
Maak daarna een virtuele omgeving aan met behulp van de Python venv-module:
|
1 |
$ python3 -m venv sample_project_env |
Activeer vervolgens de virtuele omgeving:
|
1 |
$ source sample_project_env/bin/activate |
Nu kunnen we de Django installeren die we van GitHub hebben gekloond. Hier verwijst de vlag -e naar de “bewerkbare” modus om installatie vanuit versiebeheer mogelijk te maken:
|
1 |
$ pip install -e ~/django-dev |
Controleer ten slotte de installatie:
|
1 |
$ django-admin --version |
Voorbeeld van een Django-project
Tot nu toe hebben we laten zien hoe je Django op het systeem installeert. Nu is het tijd om Django in actie te zien. In dit gedeelte laten we zien hoe je een voorbeeld van een Django-project maakt. Het voorbeeldproject wordt gemaakt binnen een virtuele omgeving.
Maak een map aan voor het voorbeeldproject:
|
1 |
$ mkdir -pv ~/django-test |
Wijzig de huidige map naar de projectmap:
|
1 |
$ cd ~/django-test |
Gebruik vervolgens de venv-module om een virtuele Python-omgeving aan te maken:
|
1 |
$ python3 -m venv dummy_env |
De virtuele omgeving is klaar. Activeer de omgeving:
|
1 |
$ source dummy_env/bin/activate |
We can install Django within the environment:
|
1 |
$ pip install django |
We kunnen django-admin gebruiken om de projectbasis te bouwen. Hier krijgt het voorbeeldproject de naam sampleproject. Het project krijgt een map binnen de omgevingsmap die alle benodigde bestanden bevat.
manage.py: Een beheerscript dat verschillende Django-specifieke taken uitvoert.voorbeeldproject: Een map met de projectnaam die de daadwerkelijke projectcode bevat.
We willen echter geen spinnenweb van te veel geneste mappen. Vertel Django daarom om de bestanden en mappen in de huidige map te plaatsen:
|
1 |
$ django-admin startproject sampleproject . |
De volgende stap is het migreren van de database. Standaard gebruikt Django SQLite. Migraties passen eventuele wijzigingen in de Django-modellen toe op het databaseschema. Voer het volgende commando uit om de database te migreren:
|
1 |
$ python manage.py migrate |
Ten slotte maken we een admin-gebruiker aan om de Django-beheerinterface te gebruiken. Voer het volgende commando uit:
|
1 |
$ python manage.py createsuperuser |
Er wordt gevraagd om een gebruikersnaam, een e-mailadres en een wachtwoord voor de gebruiker.
ALLOWED_HOSTS in Django-instellingen
Om de applicatie te testen, moeten we een bepaalde richtlijn in de Django-instellingen aanpassen. Open het bestand settings.py in een teksteditor:
|
1 |
$ nano ~/django-test/sampleproject/settings.py |
We zijn geïnteresseerd in de richtlijn ALLOWED_HOSTS. Deze beschrijft een lijst met adressen of domeinnamen die verbinding kunnen maken met de Django-instantie. Elk inkomend hostverzoek van een host die niet op de lijst staat, zal een uitzondering veroorzaken. Dit is vereist door Django om bepaalde klassen van beveiligingskwetsbaarheden te voorkomen.
Vermeld binnen de vierkante haken de IP-adressen of domeinnamen die aan de Django-server zijn gekoppeld. Elk item wordt tussen aanhalingstekens geplaatst, gescheiden door een komma (,). De structuur van de richtlijn ziet er als volgt uit:
|
1 |
$ ALLOWED_HOSTS = ['<server_ip_or_domain>', '<server2_ip_or_doman>'] |
Sla de lijst op en sluit de editor.
De server testen
We kunnen nu de Django-deployment-server starten. Deze zal een nieuw Django-project tonen. Let op dat deze alleen voor ontwikkelingsdoeleinden mag worden gebruikt. Volg voor een volwaardige implementatie de officiële Django-handleiding over implementatie.
Zorg er, voordat u de ontwikkelingsserver opent, voor dat de firewall toegang toestaat tot poort 8000. Als u de Ubuntu-serverinstallatie-handleiding volgt, geef UFW dan de opdracht om poort 8000 te openen voor communicatie:
|
1 |
$ sudo ufw allow 8000 |
UFW is een veelgebruikte firewall die beschikbaar is op alle grote Linux-distributies. Hier is een handleiding die de verschillende basisprincipes van UFW uitlegt. De ontwikkelingsserver is nu klaar om te draaien. Start the server:
|
1 |
$ python manage.py runserver <server_ip>:8000 |
Bezoek vervolgens het IP-adres van de server op poort 8000 in een webbrowser. U komt dan op de welkomstpagina van Django terecht:
|
1 |
$ http://<server_ip>:8000 |
Om toegang te krijgen tot het Django-beheerpaneel, voegt u /admin/ toe aan het einde van de URL:
|
1 |
$ http://<server_ip>:8000/admin/ |
Voer de gebruikersnaam en het wachtwoord van de beheerder in om toegang te krijgen tot het beheerdersgedeelte:
U kunt de server stoppen door te drukken op CTRL-C in de terminal.
Tot slot
Het Django-project biedt een structurele basis voor het ontwerpen van een completere site. Het biedt de belangrijkste tools die nodig zijn om een webapplicatie aan te sturen. Door gebruik te maken van een webframework zoals Django kunt u projecten sneller ontwikkelen en meer tijd besteden aan de unieke aspecten van uw applicatie.
Veel computerplezier!












Reacties
Nog geen reacties. Wees de eerste.