Terug naar blog

Een Django-app maken met databaseverbinding: een handleiding

Een Django-app maken met databaseverbinding: een handleiding

Django is een gratis en open-source webframework gebouwd in Python. Django werd voor het eerst gepubliceerd in 2005 en belichaamt het motto “snelle ontwikkeling en een schoon, pragmatisch ontwerp.” Het framework, geïmplementeerd op een webserver, kan snel een web-frontend produceren met rijke functies, beveiliging en schaalbaarheid.

Elke web-app is voor zijn inhoud afhankelijk van databases. Omdat Django een modern framework is, ondersteunt het een aantal standaard databaseprogramma's, bijvoorbeeld PostgreSQL, SQLite, MySQL, enz. Deze gids laat zien hoe u een Django-app verbindt met een database op MySQL.

Vereisten

Om deze handleiding te volgen, moet u aan bepaalde voorwaarden voldoen voordat u overgaat tot Django en de databaseverbinding:

Python 3 installeren en configureren

Django is geschreven in Python. Om een Python-app uit te voeren, moeten de Python-binaries op het systeem zijn geïnstalleerd. Ubuntu wordt standaard geleverd met Python geïnstalleerd. Hier gebruiken we Python 3. Voer de volgende opdrachten uit vanuit de terminal. Werk eerst de APT-cache bij en upgrade (indien beschikbaar) alle geïnstalleerde pakketten:

Python 3 is rechtstreeks beschikbaar vanaf de officiële Ubuntu-pakketservers. Het pakket python-is-python3  maakt een python binaire softlink naar python3 voor gebruiksgemak:

Controleer vervolgens of de installatie is geslaagd:

Daarna hebben we pip nodig. Dit is de standaard Python-pakketbeheerder. Deze is verantwoordelijk voor het beheren van aanvullende Python-bibliotheken die geen deel uitmaken van de standaardbibliotheek. Let op dat we pip3 installeren (voor Python 3):

Tenslotte hebben we nog enkele aanvullende pakketten nodig voor een robuuste programmeeromgeving:

MySQL installeren en configureren

In dit gedeelte wordt kort gedemonstreerd hoe u MySQL installeert en configureert. Het is beschikbaar via de standaard Ubuntu-pakketbronnen:

Als de installatie is geslaagd, start MySQL op de achtergrond. Controleer of het correct werkt:

Django App 1

De MySQL-server is actief en draait. We kunnen nu veilig overstappen naar de ontwikkeling van onze Django-app.

Werken met Django

  • De voorbeeld-Django-app opzetten

Het fundament van onze web-app vereist het Django-projectskelet. Dit bevat alle benodigde tools en bibliotheken om een robuuste web-app te maken. Eerst maken we een speciale map aan voor onze Django-app. Het is aan te raden om de map een betekenisvolle naam te geven die consistent is met de app die we gaan bouwen. In deze demonstratie noemen we deze myDemoApp:

We hebben de Python-module venv nodig om een virtuele omgeving in de map te maken. Installeer de module met APT:

Navigeer vervolgens naar de map en zet een virtuele omgeving op. Voor de duidelijkheid hebben we de omgeving demoapp_env:

Activeer vervolgens de virtuele omgeving door het script activate uit te voeren:

Django App 2

We installeren Django nu binnen deze speciale virtuele omgeving. Pip zal enkele aanvullende componenten downloaden en installeren:

Django is geïnstalleerd en klaar voor gebruik. Roep de opdracht django-admin aan om een nieuw Django-project te maken. Geef de app daarna een geschikte naam:

Hiermee wordt een demoproject gemaakt met de benodigde projectbestanden en mappen op hun plaats:

Django App 3

Het projectskelet is klaar. Vervolgens moeten we het correct configureren om ons doel te bereiken.

  • Django-projectinstellingen bewerken

Alle configuraties van het project zijn opgeslagen in het bestand settings.py. Dit bevindt zich in de Django-projectmap. We beginnen met het instellen van een juiste tijdzone en het vermelden van hosts die verbinding kunnen maken met de Django-app. Open het configuratiebestand in een teksteditor:

Scroll naar beneden in het script en zoek de vermelding TIME_ZONE. Ter demonstratie is de tijdzone ingesteld op America/New_York:

TIME_ZONE

Ter referentie: de volgende opdracht toont alle ondersteunde tijdzones in Linux:

Scroll vervolgens naar de vermelding ALLOWED_HOSTS. Dit bepaalt welke machine(s) toegang hebben tot de app. Ter demonstratie bevat het alleen localhost:

Django App 4Sla vervolgens het bestand op en sluit de editor. De volgende opdracht past de wijzigingen toe:

python manageNu moeten we een beheerdersaccount aanmaken voor de web-app. Dit account wordt gebruikt om toegang te krijgen tot de Django-beheerdersinterface. Voer de volgende opdracht uit:

Django App 5Er wordt gevraagd om een gebruikersnaam, e-mailadres en wachtwoord. De app is nu klaar om verbinding te maken met de database.

MySQL-verbinding

  • MySQL-connectoren en ontwikkelingsbibliotheken installeren

Om MySQL in de Django-app te integreren, hebben we enkele aanvullende Python 3-bibliotheken nodig die de benodigde tools bieden. We gebruiken de databaseconnector mysqlclient. Het is een fork van MySQLdb.

Zorg ervoor dat we python3-dev hebben geïnstalleerd:

We hebben ook enkele aanvullende Python- en MySQL-headers en -bibliotheken nodig:

Gebruik na voltooiing van de installatie pip om de Python-module mysqlclient te installeren. Dit kan enkele foutmeldingen genereren die kunnen worden genegeerd:

  • Een speciale database configureren

De volgende stap is het configureren van een speciale database en databasegebruiker voor onze Django-app. Start de MySQL-shell als de root-gebruiker:

Voer de volgende query uit om alle momenteel beschikbare databases te controleren:

Laten we een speciale database maken voor onze Django-app. Geef deze een toepasselijke naam die consistent is met de projectnaam:

Controleer vervolgens de aanmaak:

Django App 6Maak nu een speciale MySQL-gebruiker aan. We configureren deze gebruiker als de eigenaar van de database. De Django-app gebruikt de inloggegevens van deze gebruiker om met de MySQL-database te werken:

Geef de gebruiker demoapp_user volledige rechten op de database demoapp_data:

Om de wijzigingen in de rechten door te voeren, herlaadt u de MySQL-rechten-tabellen:

Django App 7De database is nu klaar om verbonden te worden met de Django-app.

  • De database verbinden met de Django-app

Ten slotte configureren we de Django-app om de database te gebruiken voor gegevensopslag. Open het configuratiescript settings.py:

Scroll naar beneden naar de vermelding DATABASES en voer de volgende code in:

Django App 8Sla het bestand op en sluit de editor. De volgende stap is het instellen van het configuratiebestand dat hierboven in de code is beschreven. Gebruik sudo om het tekstbestand op de beschreven locatie te openen:

Dit configuratiebestand zal informatie bevatten over de voor Django bestemde database en de gebruiker die we in de MySQL-server hebben aangemaakt. Voeg de volgende regels toe aan het einde van het bestand:

default-character-setOm de wijzigingen door te voeren, moeten we de MySQL-server opnieuw opstarten:

  • MySQL-verbinding testen

Het is nu tijd om te controleren of de MySQL-verbinding goed werkt. Als de Django-server zonder problemen draait, werkt de verbinding prima. Anders is er iets mis. Pas eerst alle wijzigingen toe die in het Django-project zijn aangebracht:

python manageGa nu naar de volgende projectmap en start de Django-server:

python manage.py runserverProbeer vervolgens toegang te krijgen tot de server vanuit een webbrowser:

server_ip_address

Voila! We zijn met succes op de succespagina van Django beland. Dit bevestigt ook dat de MySQL-verbinding goed werkt. Nadat de taak is voltooid, kun je de virtuele omgeving veilig afsluiten:

Tot slot

In deze handleiding heb je de basis geleerd van het combineren van Django en MySQL. We hebben een Django-app gemaakt en laten zien hoe je deze kunt verbinden met een MySQL-database. De magie zit in het Django-configuratiebestand settings.py. We hebben ook enkele basisinstellingen gewijzigd, zoals ALLOWED_HOSTS en TIME_ZONE. Django is ongelooflijk flexibel. Naast MySQL ondersteunt het ook andere SQL-servers zoals PostgreSQL, server engines zoals Nginx, enz.

Je kunt ook onze handleidingen bekijken over de beste praktijken voor het installeren, configureren en werken met Django:

Veel computerplezier!

author

Hark Labs

Auteur · CloudSigma

Preslav Dobrev is een creatief ontwerper bij CloudSigma, met de nadruk op een consistente bedrijfsidentiteit door middel van traditionele en innovatieve marketingkanalen. Hij is bedreven in het samenvoegen van artistieke visie met strategische marketing om impactvolle merkverhalen te creëren.

Reacties

Nog geen reacties. Wees de eerste.