Welkom bij Dag 2 van 12 Dagen van DigitalOcean! Gisteren zijn we begonnen met het bouwen van onze Verjaardagsherinneringsservice—een eenvoudige app die SMS-notificaties verstuurt voor aankomende verjaardagen. 🎉 We hebben een PostgreSQL-database opgezet op DigitalOcean om contactgegevens op te slaan.
Vandaag verbinden we met die database met behulp van Python en stellen we ons project in om gevoelige inloggegevens veilig te houden.
Aan het einde van deze post heb je een Python-script dat veilig gegevens uit je database ophaalt en klaar is om te schalen wanneer we het op DigitalOcean hosten.
✨ Waarom deze stap?
Het opzetten van de database was pas het begin. Om een zinvolle app te bouwen, hebben we een manier nodig om programmatically met die gegevens te communiceren. Python maakt het eenvoudig om verbinding te maken met PostgreSQL-databases, en met de hulp van een bibliotheek zoals pg8000, kunnen we met PostgreSQL-databases werken in slechts een paar regels code.
Om alles veilig te houden, slaan we onze database-inloggegevens op in een .env
bestand en laden we deze in ons script met behulp van python-dotenv. Dit zorgt ervoor dat je inloggegevens niet hard-coded in het script staan, waardoor het veiliger is om je app te delen en te implementeren.
🚀 Wat Je Zult Leren
Hier is het plan voor vandaag:
- Sla gevoelige inloggegevens op in een
.env
bestand. - Gebruik
python-dotenv
om die inloggegevens in je script te laden. - Schrijf een Python-script om veilig verbinding te maken met je PostgreSQL-database met behulp van
pg8000
- Haal gegevens op en toon ze vanuit de
contacts
tabel
Aan het einde hiervan heb je een solide basis voor het bouwen van de logica van de app.
🛠 Wat Je Nodig Hebt
Voordat we beginnen, hier is wat je nodig hebt:
- De database die we hebben opgezet op Dag 1. TODO: Link naar dag 1 URL
- Python geïnstalleerd op je lokale machine (we raden Python 3.8+ aan).
🧑🍳 Recept voor Dag 2: Verbinden met PostgreSQL met Python
Stap 1: Installeer de Vereiste Bibliotheken 📦
Om Python te verbinden met PostgreSQL en onze inloggegevens veilig te houden, gebruiken we twee belangrijke bibliotheken:
- pg8000: Een pure Python-bibliotheek waarmee je verbinding kunt maken met en interactie kunt hebben met PostgreSQL-databases.
- python-dotenv: Een hulpprogramma om gevoelige inloggegevens (zoals gebruikersnamen en wachtwoorden van databases) te laden vanuit een
.env
bestand, zodat je ze niet in je script hoeft hard te coderen.
Laten we ze nu installeren. Voer deze opdracht uit in je terminal:
Pro Tip: Als je een virtuele omgeving gebruikt (altijd een goed idee!), zorg er dan voor dat je deze activeert voordat je de bovenstaande opdracht uitvoert om je afhankelijkheden georganiseerd te houden.
Stap 2: Maak een .env-bestand 📂
In je projectdirectory maak je een bestand met de naam .env. Hierin zullen we onze databasegegevens opslaan. Voeg het volgende toe:
Vervang de tijdelijke waarden door de gegevens van Dag 1.
Pro Tip: Voeg .env
toe aan je .gitignore
-bestand om ervoor te zorgen dat je gegevens niet per ongeluk naar versiebeheer worden gepusht.
Stap 3: Maak een Python-script 🐍
Maak een nieuw bestand met de naam connect_to_db.py
, en stel het script in om gegevens te laden vanuit .env
met behulp van python-dotenv
, en maak verbinding met onze database.
Hier is de code om te beginnen:
Dit script doet een paar belangrijke dingen:
- Laadt gegevens veilig vanuit je
.env
-bestand. - Maakt een verbinding met je database met
pg8000.connect()
. - Print een succes- of foutmelding afhankelijk van de uitkomst.
Stap 4: Test de Verbinding ✅
Nu, laten we ervoor zorgen dat alles werkt. Voer je script uit:
Als alles correct is ingesteld, zou je dit moeten zien:
Als er een fout is:
- Controleer de waarden in je .env-bestand nogmaals.
- Zorg ervoor dat je IP-adres is toegevoegd aan de vertrouwde bronnen van de database (zie Stap 6 van Dag 1).
Stap 5: Haal Gegevens uit de Database 🔍
Nu laten we het script uitbreiden om gegevens op te halen. Update je connect_to_db.py
script om het volgende op te nemen:
Dit script doet nu:
- Voert een query uit om alle records uit de contacten tabel op te halen.
- Print elk record naar de console.
Opmerking: Als de tabel leeg is, geen zorgen! Je kunt nog steeds controleren of het script zonder fouten draait. Voor testdoeleinden kun je snel een voorbeeldcontact toevoegen door je database te openen met psql
(of je favoriete tool) en deze SQL-opdracht uit te voeren:
Als je een opfrisser nodig hebt over hoe je psql gebruikt of UI-tools zoals pgAdmin of TablePlus wilt verkennen, bekijk dan de instructies in Dag 1.
🎁 Samenvatting
Hier is wat je vandaag hebt bereikt:
✅ De benodigde Python-bibliotheken geïnstalleerd.
✅ Verbonden met je DigitalOcean PostgreSQL-database met Python.
✅ Gegevens opgehaald uit de contacts
tabel met een eenvoudige query.
Volgende: Morgen beginnen we met het toevoegen van logica om aankomende verjaardagen te vinden en SMS-notificaties te verzenden met Twilio. Dit is waar de app tot leven komt—blijf op de hoogte! 🚀
Source:
https://www.digitalocean.com/community/tutorials/connecting-to-postgresql-database-with-python