Python + MySQL: verschil tussen versies

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen
Regel 30: Regel 30:
 
=== Inventaris ===
 
=== Inventaris ===
  
* SQLAchemy [https://www.fullstackpython.com/sqlalchemy.html] - Vermoedelijk de meestgebruikte ORM
+
* [https://www.sqlalchemy.org/ SQLAchemy] [https://www.fullstackpython.com/sqlalchemy.html][https://stackoverflow.com/questions/372885/how-do-i-connect-to-a-mysql-database-in-python] - Vermoedelijk de meestgebruikte ORM
 
* peewee - Small & nimble
 
* peewee - Small & nimble
 
* [https://www.fullstackpython.com/django-orm.html Django-ORM]
 
* [https://www.fullstackpython.com/django-orm.html Django-ORM]

Versie van 18 okt 2018 13:18

MySQL-driver

Om vanuit Python met MySQL te communiceren, heb je een driver nodig.

Inventaris

  • MySQLdb - Vermoedelijk meest gebruikt, maar schijnt complicaties te geven tijdens installatie ivm. externe afhankelijkheden [1]
  • mysqlclient - Opvolger van MySQLdb. Hierdoor is MySQLdb achterhaald geworden
  • MySQL Connector/Python - Veelbelovend, 100% Python (dus bv. geen C-bibliotheken), afkomstig van MySQL, maar slechte performance, licentie-issues en mogelijk significante bugs
  • PyMySQL
  • oursql
  • SQLAlchemy - Suite of tools, wo. een driver (geloof ik)
  • Storm

Keuze (okt. 2018)

Er is een interessante discussie over wat de beste driver is. Die discussie lijkt zich toe te spitsen op Mysqlclient vs. Connector/Python [2], [3] - Ik kies deze laatste.

Installatie Connector/Python (okt. 2018)

  • Downloaden naar buroblad
  • Dubbelklikken
  • Installeren
  • Klaar.

ORM

De standaard-manier om te interacteren met een MySQL-database vanuit Python, is door SQL-commando's in strings te stoppen, en deze te executeren. Een verschrikkelijke manier: Complex, foutgevoelig en vermoedelijk lastig te debuggen. De oplossing voor dit probleem heet ORM, oftewel object-relational mappings. Hierdoor kun je rechtstreeks Python-db-gerelateerde commando's gebruiken. Dat maakt het leven een stuk eenvoudiger. Nadeel: Je moet mogelijk een nieuwe syntaxis leren.

Inventaris

Bronnen

Drivers

ORM's