Python + MySQL
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
- SQLAchemy [4][5] - Vermoedelijk de meestgebruikte ORM
- peewee - Small & nimble
- Django-ORM
- Pony
- SQLObject
- Tortoise ORM
Keuze (okt. 2018)
- SQLAlchemy - Lijkt de standaardoplossing te zijn.
Bronnen
Drivers
- https://stackoverflow.com/questions/372885/how-do-i-connect-to-a-mysql-database-in-python - Goed!
- https://stackoverflow.com/questions/372885/how-do-i-connect-to-a-mysql-database-in-python/20959654#20959654