Database-integration (SQLite, PostgreSQL)
Programmering B · HTX · B-niveau · Praktisk projekt
💻 Database-integration
SQLite — serverløs database, perfekt til udvikling og små projekter:
```python
import sqlite3
Opret forbindelse
conn = sqlite3.connect("data.db")
cursor = conn.cursor()
Opret tabel
cursor.execute("""
CREATE TABLE IF NOT EXISTS brugere (
id INTEGER PRIMARY KEY AUTOINCREMENT,
navn TEXT NOT NULL,
email TEXT UNIQUE NOT NULL
)
""")
Indsæt med parameterisering (ALDRIG brug f-strings!)
cursor.execute("INSERT INTO brugere (navn, email) VALUES (?, ?)",
("Alice", "alice@example.com"))
conn.commit()
Læs data
cursor.execute("SELECT * FROM brugere WHERE navn = ?", ("Alice",))
brugere = cursor.fetchall()
conn.close()
```
SQLAlchemy ORM (mere Pythonic):
```python
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import declarative_base, Session
Base = declarative_base()
class Bruger(Base):
__tablename__ = "brugere"
id = Column(Integer, primary_key=True)
navn = Column(String, nullable=False)
email = Column(String, unique=True)
engine = create_engine("sqlite:///data.db")
Base.metadata.create_all(engine)
with Session(engine) as session:
ny_bruger = Bruger(navn="Bob", email="bob@example.com")
session.add(ny_bruger)
session.commit()
```
PostgreSQL til produktion: docker compose, psycopg2, Railway.app.
Læringsmål
- Oprette og forespørge en SQLite-database fra Python
- Bruge parameteriserede queries for at forhindre SQL injection
- Implementere CRUD med SQLAlchemy ORM
- Vælge korrekt database til projektet
Sådan kan du arbejde med emnet
- Forklar hvordan et program kan gemme og hente data fra en database i stedet for en fil
- Skriv en SQL-forespørgsel, der henter alle rækker fra en tabel "Brugere", hvor alder er over 18
- Diskutér en fordel ved at bruge en database i et program i forhold til at gemme data i en almindelig fil
Træningsforslag
- Tilføj SQLite-database til en eksisterende Flask-app
- Sammenlign raw SQL vs. ORM for den samme CRUD-operation
- Sæt en gratis PostgreSQL-database op på Railway eller Supabase
Øv dette emne med AI — quizzer, forklaringer og feedback tilpasset dit niveau.
Prøv Fagportalen gratis