sql >> Database >  >> RDS >> Mysql

Verbinding maken met MySQL met Python

In dit artikel zullen we bespreken hoe u verbinding kunt maken met MySQL met behulp van Python. Python is een van de meest productieve en meest gebruikte programmeertalen die tegenwoordig worden gebruikt. De eenvoudige en elegante syntaxis maakt het ideaal voor nieuwe programmeurs, terwijl ervaren programmeurs genieten van de uitgebreide lijst met beschikbare modules en functionaliteiten.

MySQL is een robuust open-source SQL-gebaseerd, relationeel databasebeheersysteem dat in veel softwareprogramma's en webservers wordt gebruikt. Dit artikel is bedoeld om te laten zien hoe u verbinding kunt maken om Python te gebruiken om verbinding te maken met MySQL en om enkele basistaken uit te voeren.

Waarom Python gebruiken om verbinding te maken met MySQL?

U vraagt ​​zich misschien af, waarom is deze informatie belangrijk? Het beste antwoord is:deze twee componenten vullen elkaar schitterend aan! Het vermogen van Pythons om gegevens te manipuleren met behulp van broninformatie is ongeëvenaard. MySQL of MariaDB bevat de gegevens die door Python kunnen worden gemanipuleerd. Door deze twee factoren te gebruiken om elkaar te versterken en aan te vullen, wordt de algehele synergie tussen beide alleen maar groter.

Stap 1. De connectormodule installeren

Laten we beginnen met het installeren van de connectormodule. De eerste stap bij het verbinden van MySQL met Python is het installeren van de Pip Python-module. Als u pip nog niet hebt geïnstalleerd, vindt u gedetailleerde instructies voor het installeren van pip onder meerdere besturingssystemen in de Liquid Web Knowledge Base. Zodra we pip hebben geïnstalleerd, moeten we de mysql-connector-python installeren stuurprogramma met behulp van de volgende opdracht.

root@host:~# pip install mysql-connector-python 
Collecting mysql-connector-python
  Downloading mysql_connector_python-8.0.21-cp27-cp27mu-manylinux1_x86_64.whl (16.0 MB)
     |################################| 16.0 MB 13.7 MB/s 
Collecting protobuf>=3.0.0
  Downloading protobuf-3.12.2-cp27-cp27mu-manylinux1_x86_64.whl (1.3 MB)
     |################################| 1.3 MB 17.0 MB/s 
Requirement already satisfied: setuptools in /usr/local/lib/python2.7/dist-packages (from protobuf>=3.0.0->mysql-connector-python) (44.1.1)
Collecting six>=1.9
  Downloading six-1.15.0-py2.py3-none-any.whl (10 kB)
Installing collected packages: six, protobuf, mysql-connector-python
Successfully installed mysql-connector-python-8.0.21 protobuf-3.12.2 six-1.15.0

In het bovenstaande voorbeeld controleert pip op andere modules die het mysql-connector-python-stuurprogramma mogelijk nodig heeft, die vervolgens indien nodig worden geïnstalleerd.

Stap 2. Connector importeren

De volgende stap is het importeren van de mysql-connector-python module met dit commando in je code.

import mysql.connector

Deze opdracht vertelt Python alle functies en objecten die verband houden met en gebruikt worden door de MySQL-connectormodule te laden en in te schakelen.

Stap 3. Verbind MySQL met de server

Onze volgende stap is het aanroepen van de mysql.connector.connect() methode om een ​​verbinding met de server tot stand te brengen.

import mysql.connector

db = mysql.connector.connect(
	host='localhost',
	user=’username’,
	password=’password’
)

Meestal gebruiken we bij communicatie met een MySQL-database een MySQLcursor object (dat deel uitmaakt van de mysql-connector-python-module). Beschouw dit object als een type CLI (opdrachtregelinterface) waar we SQL-query's kunnen typen die worden gebruikt om met de server te communiceren. Deze communicatie wordt tot stand gebracht met behulp van de cursormethode (cursor =db.cursor() ), aanroepen van het db-object dat we in de laatste stap hebben gemaakt met de connect-methode:

import mysql.connector

db = mysql.connector.connect(
        host='localhost',
        user=’username’,
        password=’password’'
)

cursor = db.cursor()

Met een db.cursor-object kunnen we SQL-query's uitvoeren. Deze query retourneert een object dat we kunnen herhalen met een for-lus zoals zo.

import mysql.connector

db = mysql.connector.connect(
        host='localhost',
        user=’username’,
        password=’password’'
)

cursor = db.cursor()

cursor.execute("show databases")

for x in cursor:
	print(x)

Er is een reeds bestaande database die is opgezet in een eerdere KB-zelfstudie over SQL Views. Het bevat informatie over een fictieve stockcar-serie. Als u het bovenstaande script gebruikt, zien de resultaten er als volgt uit:

# python mysql-test.py 
(u'information_schema',)
(u'races',)
(u'sys',)

We kunnen andere commando's gebruiken met de huidige cursor (db.cursor() ) om met deze database te communiceren. Hier trekken we een lijst met tabellen en weergaven uit dezelfde database.

import mysql.connector

db = mysql.connector.connect(
        host='localhost',
        user=’username’,
        password='password'
)

cursor = db.cursor()


cursor.execute("use races")
cursor.execute("show tables")
for x in cursor:
        print(x)


The output results look like this.

# python mysql-test.py 
(u'all_finishes',)
(u'drivers',)
(u'finishes',)
(u'race_winners',)
(u'races',)
(u'standings_leader',)
(u'tracks',)
Opmerking:de "u" voor het resultaat geeft aan dat het een Unicode-tekenreeks is.

Gegevens invoegen met het MySQL-cursorobject

Nu we de structuur van de database kunnen achterhalen, kunnen we het cursorobject gebruiken om andere opdrachten uit te voeren. Er was een sectie waar de coureurs voor het raceseizoen in de database werden ingevoerd. Het werd gedaan met behulp van deze SQL-query.

insert into drivers (name,car_number) values
  ('Buddy Baker',28),
  ('Dale Earnhardt Jr.',8),
  ('Ricky Rudd',88);

Om dezelfde SQL-query uit te voeren met Python, geven we deze string gewoon door aan de execute-methode van onze cursor . Een goede methode om hiermee te oefenen, is door een variabele toe te wijzen als de tekst van de query en vervolgens execute aan te roepen op het cursorobject. Je moet ook mysql instrueren om de wijzigingen door te voeren door db.commit() zo aan te roepen.

db = mysql.connector.connect(
	host='localhost',
	user=’username’,
	password='password'
)

cursor = db.cursor()
cursor.execute("use races")


query = "insert into drivers (name,car_number) values ('Buddy Baker',28),('Dale Earnhardt Jr.',8),('Ricky Rudd',88);"

cursor.execute(query)

db.commit()

De resultaten:

id naam

autonummer

1 Buddy Baker

28

2

Dale Earnhardt Jr.

8
3

Ricky Rudd

88

Wanneer we meerdere rijen invoegen, biedt de interface de methode "executemany" , waarmee we een reeks waarden kunnen maken die moeten worden ingevoegd en een reeks die speciaal is opgemaakt met het %s-symbool dat de waarden uit de reeksen vervangt. Dit voorbeeld is identiek aan het vorige invoegsel:

db = mysql.connector.connect(
	host='localhost',
	user=’username’,
	password='password'
)

cursor = db.cursor()
cursor.execute("use races")


query = "insert into drivers (name,car_number) values ('Buddy Baker',28),('Dale Earnhardt Jr.',8),('Ricky Rudd',88);"

cursor.execute(query)

db.commit()

De waarden uit de array 'drivers' worden één voor één doorgegeven aan de 'sql'-instructie en vervolgens doorgegeven aan 'executemany()

Selecteren gebruiken

Net als andere SQL-instructies kunnen we het cursorobject gebruiken om selecties uit te voeren. Na een selectie krijgt een cursor een paar nieuwe methoden, waaronder fetchall() en fetchone() . De fetchall() retourneert een lijst met alle resultaten. Elk resultaat is een lijst met de bijbehorende kolommen in de volgorde waarin ze zijn geselecteerd. De methode fetchone() retourneert het volgende resultaat uit de resultatenset.

sql = "select name,car_number from drivers"

cursor.execute(sql)

results = cursor.fetchall()

for x in results:
        print(x)

Resultaten:

(u'Buddy Baker', 28)
(u'Dale Earnhardt Jr.', 8)
(u'Ricky Rudd', 88)

Als we één resultaat tegelijk willen, kunnen we fetchone() . gebruiken

sql = "select name,car_number from drivers"

cursor.execute(sql)

results = cursor.fetchone()

print(results)

Resultaten:

(u'Buddy Baker', 28)

Bijwerken en verwijderen van gegevens

Net zoals het insert-commando, gebruiken de delete- en update-commando's een cursorobject en moeten ze db.commit() aanroepen; verder zijn ze vergelijkbaar met andere SQL-commando's.

Bijwerken :

sql = "update drivers set car_number = 1 where car_number = 88"
cursor.execute(sql)
db.commit()

sql = "select name,car_number from drivers"

cursor.execute(sql)

results = cursor.fetchall()
for x in results:
        print(x)

(u'Buddy Baker', 28)
(u'Dale Earnhardt Jr.', 8)
(u'Ricky Rudd', 1)

Verwijderen :

sql = "delete from drivers where car_number = 8"
cursor.execute(sql)
db.commit()

sql = "select name,car_number from drivers"

cursor.execute(sql)

results = cursor.fetchall()
for x in results:
        print(x)

(u'Buddy Baker', 28)
(u'Ricky Rudd', 1)

Conclusie

Dus, wat zijn de afhaalrestaurants van dit artikel? Het gebruik van Python voor interactie met MySQL is een eenvoudige en effectieve manier om gegevens te manipuleren op manieren die elk systeem aanvullen.

Vragen hebben? We zijn er trots op de meest behulpzame mensen in Hosting™ te zijn! Onze technische ondersteuningsmedewerkers zijn altijd beschikbaar om te helpen met alle problemen met betrekking tot dit artikel, 24 uur per dag, 7 dagen per week 365 dagen per jaar.

We zijn beschikbaar via onze ticketingsystemen op [email protected], telefonisch (op 800-580-4986), of via een LiveChat of welke methode dan ook. We werken hard voor u zodat u kunt ontspannen.


  1. Automatisch opnieuw opvragen met LoaderManager

  2. Android SQLite invoegen of bijwerken

  3. mysql_fetch_assoc():opgegeven argument is geen geldige MySQL-resultaatbron in php

  4. SQLite datum- en tijdfuncties