Introductie
Django is een uitgebreid Python webframework voor het ontwikkelen van dynamische websites en applicaties. Met Django kunt u snel Python-webapplicaties maken en vertrouwen op het framework om het meeste werk te doen.
In deze handleiding gaat u Django installeren op een Ubuntu 22.04-server. Na de installatie start u een nieuw project om als basis voor uw site te gebruiken.
Verschillende Methoden
Er zijn verschillende manieren om Django te installeren, afhankelijk van uw behoeften en hoe u uw ontwikkelomgeving wilt configureren. Deze hebben verschillende voordelen en één methode kan beter geschikt zijn voor uw specifieke situatie dan andere.
Enkele van de verschillende methoden zijn onder andere:
- Globale installatie van pakketten: De officiële Ubuntu-repositories bevatten Django-pakketten die kunnen worden geïnstalleerd met de conventionele
apt
pakketbeheerder. Dit is eenvoudig, maar niet zo flexibel als sommige andere methoden. Bovendien kan de versie die in de repositories zit achterlopen op de officiële versies die beschikbaar zijn vanuit het project. - Installeren met
pip
in een virtuele omgeving: Je kunt een zelfstandige omgeving maken voor je projecten met behulp van tools zoalsvenv
envirtualenv
. Een virtuele omgeving stelt je in staat om Django te installeren in een projectdirectory zonder het grotere systeem te beïnvloeden, samen met andere per-project aanpassingen en pakketten. Dit is doorgaans de meest praktische en aanbevolen aanpak om met Django te werken. - Installeer de ontwikkelversie met
git
: Als je de laatste ontwikkelversie wilt installeren in plaats van de stabiele release, kun je de code verkrijgen van de Git-opslagplaats. Dit is nodig om de nieuwste functies/fixes te krijgen en kan worden gedaan binnen je virtuele omgeving. Ontwikkelversies bieden echter niet dezelfde stabiliteitsgaranties als stabielere versies.
Vereisten
Voordat je begint, moet je een niet-root gebruiker met sudo-rechten beschikbaar hebben op je Ubuntu 22.04-server. Om dit in te stellen, volg onze Ubuntu 22.04 initiële serverinstallatiegids.
Globale installatie van pakketten
Als u Django wilt installeren via de Ubuntu-repositories, is het proces zeer eenvoudig.
Als eerste stap, werk uw lokale pakketindex bij met apt
:
Vervolgens controleert u welke versie van Python u hebt geïnstalleerd. 22.04 wordt standaard geleverd met Python 3.10, wat u kunt controleren door het volgende te typen:
U zou output zoals deze moeten zien:
OutputPython 3.10.4
Installeer vervolgens Django:
U kunt testen of de installatie succesvol was door het volgende te typen:
Output3.2.12
Dit betekent dat de software succesvol is geïnstalleerd. U kunt ook opmerken dat de Django-versie niet de nieuwste stabiele versie is. Om meer te weten te komen over hoe u de software kunt gebruiken, kunt u doorgaan en leren hoe u een voorbeeldproject kunt maken.
Installeren met pip in een virtuele omgeving
De meest flexibele manier om Django op uw systeem te installeren, is binnen een virtuele omgeving. We zullen u laten zien hoe u Django installeert in een virtuele omgeving die we zullen aanmaken met de venv
-module, onderdeel van de standaard Python 3-bibliotheek. Deze tool maakt het mogelijk om virtuele Python-omgevingen te creëren en Python-pakketten te installeren zonder de rest van het systeem te beïnvloeden. U kunt daarom Python-pakketten selecteren op projectbasis, ongeacht conflicten met de vereisten van andere projecten.
Laten we beginnen met het vernieuwen van de lokale pakketindex:
Controleer de versie van Python die je hebt geïnstalleerd:
OutputPython 3.10.4
Volgende stap is het installeren van pip
en venv
vanuit de Ubuntu repositories:
Telkens wanneer je een nieuw project start, kan je een virtuele omgeving aanmaken. Begin door een nieuwe projectdirectory aan te maken en erin te navigeren:
Vervolgens maak je een virtuele omgeving aan binnen de projectdirectory met behulp van het python
commando dat compatibel is met je Python-versie. We zullen onze virtuele omgeving my_env
noemen, maar je kan het iets beschrijvends geven:
Dit zal zelfstandige versies van Python en pip
installeren in een geïsoleerde directorystructuur binnen je projectdirectory. Er wordt een directory aangemaakt met de door jou gekozen naam, waarin de bestandshiërarchie zal worden onderhouden voor het installeren van je pakketten.
Om pakketten te installeren in de geïsoleerde omgeving, moet je deze activeren door het volgende in te typen:
Je prompt zou moeten veranderen om aan te geven dat je nu in je virtuele omgeving zit. Het zal er ongeveer zo uitzien: (my_env)gebruikersnaam@hostname:~/nieuwproject$
.
In je nieuwe omgeving kan je pip
gebruiken om Django te installeren. Ongeacht je Python-versie, moet pip
simpelweg pip
worden genoemd wanneer je in je virtuele omgeving zit. Let er ook op dat je geen sudo
hoeft te gebruiken omdat je lokaal installeert:
Je kan de installatie verifiëren door het volgende te typen:
Output4.0.4
Merk op dat jouw versie kan verschillen van de versie die hier wordt getoond.
Om je virtuele omgeving te verlaten, moet je het deactivate
commando uitvoeren vanaf elke locatie op het systeem:
Je prompt zou terug moeten keren naar de conventionele weergave. Wanneer je weer aan je project wilt werken, activeer je je virtuele omgeving opnieuw door terug te gaan naar je projectdirectory en te activeren:
Installatie van ontwikkelingsversie met Git
Als je een ontwikkelingsversie van Django nodig hebt, kun je Django downloaden en installeren vanuit zijn Git-repository. Laten we dit doen vanuit een virtuele omgeving.
Eerst, laten we de lokale pakketindex bijwerken:
Controleer de versie van Python die je hebt geïnstalleerd:
OutputPython 3.10.4
Vervolgens, installeer pip
en venv
vanuit de officiële repositories:
Het volgende stap is het klonen van de Django repository. Tussen releases heeft deze repository meer up-to-date functies en bug fixes ten koste van stabiliteit. Je kunt de repository klonen naar een directory genaamd ~/django-dev
binnen je home-directory door te typen:
Verander naar deze directory:
Creëer een virtuele omgeving met behulp van het python
commando dat compatibel is met je geïnstalleerde versie van Python:
Activeer het:
Vervolgens kunt u het repository installeren met pip
. De -e
optie zal in “bewerkbare” modus installeren, wat nodig is bij installatie vanuit versiebeheer:
U kunt controleren of de installatie succesvol was door het volgende te typen:
Output4.0.4.2
Nogmaals, de versie die u ziet weergegeven kan niet overeenkomen met wat hier wordt getoond.
U heeft nu de nieuwste versie van Django in uw virtuele omgeving.
Het maken van een voorbeeldproject
Met Django geïnstalleerd, kunt u beginnen met het bouwen van uw project. We zullen bespreken hoe u een project kunt maken en het kunt testen op uw ontwikkelingsserver met behulp van een virtuele omgeving.
Eerst, maak een map voor uw project en verander erin:
Vervolgens, maak uw virtuele omgeving:
Activeer de omgeving:
Installeer Django:
Om uw project te bouwen, kunt u django-admin
gebruiken met het startproject
commando. We zullen ons project djangoproject
noemen, maar u kunt dit vervangen door een andere naam. startproject
zal een map aanmaken binnen uw huidige werkmap die omvat:
- A management script,
manage.py
, which you can use to administer various Django-specific tasks. - A directory (with the same name as the project) that includes the actual project code.
Om echter te voorkomen dat er te veel geneste mappen zijn, vertel Django om het beheerscript en de binnenste map in de huidige map te plaatsen (let op de eindpunt).
Om de database te migreren (dit voorbeeld gebruikt standaard SQLite), laten we het migrate
commando gebruiken met manage.py
. Migraties passen alle wijzigingen toe die je hebt aangebracht aan je Django modellen op je databaseschema.
Om de database te migreren, typ:
Je ziet een uitvoer zoals het volgende:
OutputOperations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying auth.0010_alter_group_name_max_length... OK
Applying auth.0011_update_proxy_permissions... OK
Applying auth.0012_alter_user_first_name_max_length... OK
Applying sessions.0001_initial... OK
Tenslotte, laten we een beheerdersgebruiker aanmaken zodat je de Djano beheerinterface kunt gebruiken. Laten we dit doen met het createsuperuser
commando:
Je wordt gevraagd om een gebruikersnaam, een e-mailadres en een wachtwoord voor je gebruiker.
Het wijzigen van ALLOWED_HOSTS in de Django-instellingen
Om je applicatie succesvol te testen, moet je een van de directieven in de Django-instellingen wijzigen.
Open het instellingenbestand door te typen:
Binnenin, zoek de ALLOWED_HOSTS
richtlijn op. Dit definieert een lijst met adressen of domeinnamen die gebruikt kunnen worden om verbinding te maken met de Django-instantie. Een inkomend verzoek met een Host header die niet in deze lijst staat, zal een uitzondering veroorzaken. Django vereist dat je dit instelt om een bepaalde klasse van beveiligingskwetsbaarheden te voorkomen.
In de vierkante haken, vermeld de IP-adressen of domeinnamen die geassocieerd zijn met je Django-server. Elk item moet tussen aanhalingstekens staan, met afzonderlijke vermeldingen gescheiden door een komma. Als je verzoeken voor een volledig domein en alle subdomeinen wilt, voeg dan een punt toe aan het begin van de vermelding:
Wanneer je klaar bent, sla het bestand op en verlaat je editor.
Testen van de Ontwikkelingsserver
Zodra je een gebruiker hebt, kun je de Django-ontwikkelingsserver starten om te zien hoe een nieuw Django-project eruitziet. Je zou dit alleen voor ontwikkelingsdoeleinden moeten gebruiken. Wanneer je klaar bent om te implementeren, zorg er dan voor dat je de richtlijnen van Django voor implementatie zorgvuldig volgt.
Voordat je de ontwikkelingsserver probeert, zorg ervoor dat je de juiste poort opent in je firewall. Als je de initiële serverinstallatiehandleiding hebt gevolgd en UFW gebruikt, kun je poort 8000
openen door te typen:
Start de ontwikkelingsserver:
Bezoek het IP-adres van je server gevolgd door :8000
in je webbrowser:
http://your_server_ip:8000
Je zou iets moeten zien dat er zo uitziet:
Om toegang te krijgen tot de beheerinterface, voeg /admin/
toe aan het einde van je URL:
http://your_server_ip:8000/admin/
Dit brengt je naar een inlogscherm:
Als je de gebruikersnaam en wachtwoord van de beheerder invoert die je zojuist hebt aangemaakt, heb je toegang tot de hoofd-beheersectie van de site:
Voor meer informatie over het werken met de Django beheerinterface, zie “Hoe de Django beheerinterface in te schakelen en te verbinden.”
Als je klaar bent met het bekijken van de standaardsite, kun je de ontwikkelingsserver stoppen door CTRL-C
in te typen in je terminal.
Het Django-project dat je hebt gemaakt, biedt de structurele basis voor het ontwerpen van een meer complete site. Bekijk de Django-documentatie voor meer informatie over het bouwen van je applicaties en het aanpassen van je site.
Conclusie
Je zou nu Django moeten hebben geïnstalleerd op je Ubuntu 22.04 server, waardoor je de belangrijkste tools hebt om krachtige webapplicaties te maken. Je zou ook moeten weten hoe je een nieuw project kunt starten en de ontwikkelingsserver kunt starten. Het gebruik van een compleet webframework zoals Django kan de ontwikkeling versnellen, waardoor je je alleen hoeft te concentreren op de unieke aspecten van je applicaties.
Als u meer informatie wilt over het werken met Django, inclusief diepgaande discussies over zaken als modellen en weergaven, raadpleeg dan onze Django-ontwikkelingsserie.