MySQLdb er en tynd python-indpakning omkring C-modul, som implementerer API til MySQL-database.
Der var MySQLDb1 version af wrapper brugt for noget tid siden, og nu anses det for at være en arv. Da MySQLDb1 begyndte at udvikle sig til MySQLDb2 med fejlrettelser og Python3-understøttelse blev en MySQLDb1 forfalsket, og her er hvordan mysqlclient dukkede op med fejlrettelser og Python3-understøttelse. Sammenfattende, så nu har vi MySQLDb2, som ikke er klar til produktionsbrug, MySQLDb1 som en forældet driver og en community-understøttet mysqlclient med fejlrettelser og Python3-understøttelse.
For at løse det rod giver MySQL deres egen version af MySQL-adapteren - mysql-stik , et alt-i-python-modul, der bruger MySQL API med ingen C-modulafhængigheder og kun standard python-moduler brugt.
Så nu kommer spørgsmålet ned til:mysqlclient vs mysql connector.
Hvad mig angår, ville jeg gå med et officielt understøttet bibliotek, dog mysqlclient
bør også være et godt valg. Begge af dem bliver aktivt opdateret med rettelser og nye funktioner, som du kan se ved aktive commits i de sidste dage.
Bemærk:Jeg havde ikke meget erfaring med dem, så der kan være tilfælde, hvor det ene eller det andet ikke passer til dine behov. Begge biblioteker følger PEP-249 standard, hvilket betyder, at du skal have det fint med mindst basisfunktionalitet overalt.
Installation og afhængigheder
- mysqlclient
Som en fork af C-indpakning kræver det C-moduler for at arbejde med MySQL, som tilføjer python-header-filer til at bygge disse udvidelser (læs python-dev). Installationen afhænger af det system, du bruger, bare sørg for, at du er opmærksom på pakkenavne og kan installere dem.
- mysql-stikHoveddokumentation er ret tydeligt, men du skal være opmærksom på Protobuf C++ afhængighed (for mysql-connector versioner>=2.2.3 ).