Verwenden Sie Python, um mithilfe des Moduls pymysql eine Verbindung zur MySQL-Datenbank herzustellen

Verwenden Sie Python, um mithilfe des Moduls pymysql eine Verbindung zur MySQL-Datenbank herzustellen

Installieren Sie pymysql

pip install pymysql

2|0Verwenden von pymysql

2|1Datenabfrageanweisungen verwenden

Abfrage eines Datenelements fetchone()

vom pymysql-Import *

conn = verbinden(
  Host = '127.0.0.1',
  Port=3306, Benutzer='root',
  Passwort='123456',
  Datenbank='itcast',
  Zeichensatz = "utf8")

# Erstellen Sie einen Cursor c = conn.cursor()
# SQL-Anweisung ausführen c.execute("select * from student")
# Abfrage einer Datenzeile result = c.fetchone()
drucken(Ergebnis)
# Cursor schließen c.close()
# Schließen Sie die Datenbankverbindung conn.close()
"""
(1, 'Kleinkind', 18, b'\x01')
"""

Mehrere Daten abfragen fetchall()

vom pymysql-Import *

conn = verbinden(
  Host = '127.0.0.1',
  Port=3306, Benutzer='root',
  Passwort='123456',
  Datenbank='itcast',
  Zeichensatz = "utf8")

# Erstellen Sie einen Cursor c = conn.cursor()
# SQL-Anweisung ausführen c.execute("select * from student")
# Mehrere Datenzeilen abfragen result = c.fetchall()
für Element im Ergebnis:
  drucken(Artikel)
# Cursor schließen c.close()
# Schließen Sie die Datenbankverbindung conn.close()
"""
(1, 'Kleinkind', 18, b'\x01')
(2, 'Li Si', 19, b'\x00')
(3, 'Kleinkind', 20, b'\x01')
"""

Ändern Sie die Standardeinstellungen des Cursors, der Rückgabewert ist ein Wörterbuch

vom pymysql-Import *

conn = verbinden(
  Host = '127.0.0.1',
  Port=3306, Benutzer='root',
  Passwort='123456',
  Datenbank='itcast',
  Zeichensatz = "utf8")

# Erstellen Sie einen Cursor und stellen Sie die Operation auf den Wörterbuchtyp c = conn.cursor(cursors.DictCursor) ein.
# SQL-Anweisung ausführen c.execute("select * from student")
# Mehrere Datenzeilen abfragen result = c.fetchall()
für Element im Ergebnis:
  drucken(Artikel)
# Cursor schließen c.close()
# Schließen Sie die Datenbankverbindung conn.close()
"""
{'id': 1, 'name': 'Name', 'age': 18, 'sex': b'\x01'}
{'id': 2, 'name': 'Li Si', 'alter': 19, 'geschlecht': b'\x00'}
{'id': 3, 'name': 'Name', 'age': 20, 'sex': b'\x01'}
"""

Dasselbe gilt für die Rückgabe eines Datenelements. Geben Sie je nach Bedarf ein Wörterbuch oder ein Tupel zurück.

2|2Datenmanipulationsanweisungen verwenden

Die Vorgänge zum Ausführen von Add-, Delete- und Update-Anweisungen sind eigentlich dieselben. Schreiben Sie einfach eines zur Demonstration.

vom pymysql-Import *

conn = verbinden(
  Host = '127.0.0.1',
  Port=3306, Benutzer='root',
  Passwort='123456',
  Datenbank='itcast',
  Zeichensatz = "utf8")

# Erstellen Sie einen Cursor c = conn.cursor()
# SQL-Anweisung ausführen c.execute("insert into student(name,age,sex) values ​​​​(%s,%s,%s)",("Individual",28,1))
# Transaktion festschreiben conn.commit()
# Cursor schließen c.close()
# Schließen Sie die Datenbankverbindung conn.close()

Im Gegensatz zu Abfrageanweisungen müssen Transaktionen mit commit() festgeschrieben werden, sonst ist die Operation ungültig.

3|0Datenbankverbindungsklasse schreiben

Reguläre Ausgabe

MysqlHelper.py

von pymysql import connect, Cursor

Klasse MysqlHelper:
  def __init__(selbst,
         Host="127.0.0.1",
         Benutzer="root",
         Passwort="123456",
         Datenbank="itcast",
         Zeichensatz = "utf8",
         Port=3306):
    selbst.host = Host
    self.port = Port
    self.user = Benutzer
    self.password = Passwort
    self.database = Datenbank
    self.charset = Zeichensatz
    self._conn = Keine
    self._cursor = Keine

  def _open(selbst):
    # print("Verbindung geöffnet")
    self._conn = verbinden(Host=self.host,
               port=selbst.port,
               Benutzer=selbst.Benutzer,
               Passwort=Selbstpasswort,
               Datenbank=selbst.Datenbank,
               Zeichensatz = selbst.Zeichensatz)
    self._cursor = self._conn.cursor(cursors.DictCursor)

  def _close(selbst):
    # print("Verbindung geschlossen")
    self._cursor.close()
    self._conn.close()

  def eins(selbst, sql, params=Keine):
    Ergebnis: Tupel = Keines
    versuchen:
      selbst._öffnen()
      self._cursor.execute(sql, Parameter)
      Ergebnis = self._cursor.fetchone()
    außer Ausnahme als e:
      drucken(e)
    Endlich:
      selbst._schließen()
    Ergebnis zurückgeben

  def alles(selbst, sql, params=Keine):
    Ergebnis: Tupel = Keines
    versuchen:
      selbst._öffnen()
      self._cursor.execute(sql, Parameter)
      Ergebnis = self._cursor.fetchall()
    außer Ausnahme als e:
      drucken(e)
    Endlich:
      selbst._schließen()
    Ergebnis zurückgeben

  def exe(selbst, sql, params=Keine):
    versuchen:
      selbst._öffnen()
      self._cursor.execute(sql, Parameter)
      self._conn.commit()
    außer Ausnahme als e:
      drucken(e)
    Endlich:
      selbst._schließen()

Diese Klasse kapselt Fetchone, Fetchall und Execute, sodass das Öffnen und Schließen von Datenbankverbindungen und Cursorn nicht mehr erforderlich ist.
Der folgende Code ist ein kleines Beispiel für den Aufruf dieser Klasse:

vom MysqlHelper-Import *

mysqlhelper = MysqlHelper()
ret = mysqlhelper.all("Wählen Sie * aus Student aus")
für Artikel im Ret:
  drucken(Artikel)
"""
{'id': 1, 'name': 'Name', 'age': 18, 'sex': b'\x01'}
{'id': 2, 'name': 'Li Si', 'alter': 19, 'geschlecht': b'\x00'}
{'id': 3, 'name': 'Name', 'age': 20, 'sex': b'\x01'}
{'id': 5, 'name': 'Name', 'age': 28, 'sex': b'\x01'}
{'id': 6, 'name': 'Wahaha', 'alter': 28, 'geschlecht': b'\x01'}
{'id': 7, 'name': 'Wahaha', 'alter': 28, 'geschlecht': b'\x01'}
"""
Kontext-Manager-Version von mysql_with.py

von pymysql import connect, Cursor

Klasse DB:
  def __init__(selbst,
         Host = "lokaler Host",
         Port=3306,
         db='itcast',
         Benutzer='root',
         passwd='123456',
         Zeichensatz='utf8'):
    # Verbindung herstellen self.conn = connect(
      Host = Host,
      port=Anschluss,
      db = db,
      Benutzer=Benutzer,
      passwd=Passwort,
      charset=Zeichensatz)
    # Erstellen Sie einen Cursor und stellen Sie die Operation auf den Wörterbuchtyp self.cur = self.conn.cursor(cursor=cursors.DictCursor) ein.

  def __enter__(selbst):
    # Gibt den Cursor zurück return self.cur

  auf __exit__(selbst, exc_typ, exc_val, exc_tb):
    # Datenbank committen und self.conn.commit() ausführen
    # Cursor schließen self.cur.close()
    # Schließen Sie die Datenbankverbindung self.conn.close()

Anwendung:

von mysql_with importiere DB

mit DB() als db:
  db.execute("Wähle * aus dem Studenten aus")
  ret = db.fetchone()
  drucken(ret)

"""
{'id': 1, 'name': 'Name', 'age': 18, 'sex': b'\x01'}
"""

Zusammenfassen

Oben ist eine Einführung in die Verwendung von Python zum Herstellen einer Verbindung mit einer MySQL-Datenbank mithilfe des Moduls pymysql. Ich hoffe, es ist für alle hilfreich. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten!

Das könnte Sie auch interessieren:
  • Python-Modul erklärt die Verbindung und Verwendung der Redis-Datenbank
  • Python verwendet die im Modul sqlite3 integrierte Datenbank
  • Python analysiert die Methode zum Bedienen der Datenbank mit dem Modul pymysql
  • Python verwendet das Modul sqlalchemy, um eine Verbindung zum Datenbankvorgangsbeispiel herzustellen
  • Detaillierte Erklärung zur Verbindung mit einer SQL Server-Datenbank basierend auf dem Pymssql-Modul in Python
  • Tutorial zum Schreiben von Datenbankmodulen in Python
  • Das Python MySQLdb-Modul stellt eine Verbindung her, um eine MySQL-Datenbankinstanz zu betreiben
  • Einführung in das Python-BSDDB-Modul zum Bedienen der Berkeley DB-Datenbank
  • Verschiedene Datenbankbetriebsmodule und Verbindungsbeispiele, die häufig in Python verwendet werden
  • Teilen Sie ein Python-Modul, das bei Datenbanken sehr nützlich ist

<<:  So erstellen Sie einen K8S-Cluster und installieren Docker unter Hyper-V

>>:  Verschachtelte Anzeigeimplementierung der Vue-Router-Ansicht

Artikel empfehlen

React-Implementierungsbeispiel mit Amap (react-amap)

Die PC-Version von React wurde für die Verwendung...

LinkedIn wird überarbeitet, um das Surfen auf der Website zu vereinfachen

Das geschäftliche Social-Networking-Portal Linked...

Erklärung der horizontalen und vertikalen Tabellenpartitionierung von MySQL

In meinem vorherigen Artikel habe ich gesagt, das...

Tutorial zur Verwendung des Multitail-Befehls unter Linux

MultiTail ist eine Software zum gleichzeitigen Üb...

So verwalten Sie mehrere Projekte auf dem CentOS SVN-Server

Eine Forderung Im Allgemeinen hat ein Unternehmen...

HeidiSQL-Tool zum Exportieren und Importieren von MySQL-Daten

Um den Export und Import von Daten in SQL zu erle...