Skip to content

ORM

Hier is een overzicht van de voor- en nadelen van Flask met en zonder ORM (SQLAlchemy), gericht op eerstejaars HBO-studenten met enige Python Flask-ervaring.


Flask zonder ORM

Voordelen:

  1. Eenvoudig te begrijpen:
  2. Studenten leren direct hoe SQL werkt door expliciete queries te schrijven.
  3. Minder abstractie maakt het conceptueel eenvoudiger voor beginners.
  4. Volledige controle:

  5. Je hebt volledige controle over de database-operaties.

  6. Je begrijpt duidelijk hoe gegevens worden opgehaald, toegevoegd en gewijzigd.

  7. Kleinere afhankelijkheden:

  8. Geen extra bibliotheken of complexiteit zoals ORM-modellen.

  9. Goed voor kleine projecten:

  10. Voor eenvoudige applicaties is dit vaak voldoende.

Nadelen:

  1. Minder efficiënt bij grotere projecten:
  2. Je moet veel SQL-code schrijven, wat repetitief kan worden.
  3. Geen integratie met OOP:

  4. Gegevens worden meestal als rijen en kolommen behandeld, niet als objecten.

  5. Meer kans op fouten:

  6. Handmatige SQL-queries maken het makkelijker om fouten zoals SQL-injecties te introduceren als je geen goede validatie toepast.

Flask met ORM (SQLAlchemy)

Voordelen:

  1. Objectgeoriënteerde benadering:

  2. Tabellen worden gemapt naar Python-klassen, wat helpt bij het leren van OOP.

  3. Je werkt met objecten in plaats van SQL-resultaten, wat intuïtiever kan zijn.

  4. Snellere ontwikkeling:

  5. Minder SQL-syntax nodig; ORM genereert de queries voor je.

  6. Eenvoudig omgaan met relaties (bijv. Foreign Keys) via modellen.

  7. Geschikt voor grotere projecten:

  8. Betere schaalbaarheid en onderhoudbaarheid dankzij de structuur die ORM biedt.

  9. Abstractie van de database:

  10. Je kunt makkelijk wisselen tussen verschillende database-engines (bijv. SQLite naar PostgreSQL).

Nadelen:

  1. Steilere leercurve:
  2. Het begrijpen van ORM-concepten (zoals sessies en declarative models) kan lastig zijn.
  3. Minder controle:

  4. ORM neemt bepaalde beslissingen voor je, wat verwarrend kan zijn als je niet begrijpt hoe het werkt.

  5. Meer afhankelijkheden:

  6. Je moet extra bibliotheken leren en beheren, zoals SQLAlchemy.

  7. Performance-overhead:

  8. ORM kan soms minder efficiënt zijn dan handgeschreven SQL.

Wanneer kiezen voor wat?

  • Flask zonder ORM:
    Kies dit als studenten:

  • Nog moeite hebben met basisconcepten zoals SQL en Python.

  • Een applicatie bouwen en focus willen leggen op fundamentele programmeervaardigheden.

  • Flask met ORM (SQLAlchemy):
    Kies dit als studenten:

  • Al comfortabel zijn met databases en SQL.
  • Willen leren hoe OOP in een praktische context werkt.
  • Werken aan een project dat uitbreidbaar moet zijn of meerdere relaties tussen tabellen heeft.
graph TD
    A[Start: Flask-project kiezen] --> B[Je voelt je confortabel met Python en Flask?]
    B -->|Nee| C[Begin met een simpele Flask-app zonder ORM]
    B -->|Ja| D[Je voelt je confortabel met SQL bijv. JOIN ?]
    D -->|Nee| E[Leer eerst goed SQL en begin zonder ORM]
    D -->|Ja| F[Je kent de basis van OOP ?]
    F -->|Nee| G[Gebruik Flask zonder ORM en schrijf zelf classes]
    F -->|Ja| H[Gebruik Flask met ORM SQLAlchemy]
    G --> I[Focus op applicatielogica en basisprincipes]
    H --> J[Leer OOP en ORM in de praktijk]