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

Zusammenfassung der 10 am häufigsten gestellten Fragen in Linux-Interviews

Vorwort Wenn Sie sich auf die Stelle eines Betrie...

Einführung in die Apache-Bereitstellung von https in der Kryptografie

Inhaltsverzeichnis Zweck Experimentelle Umgebung ...

Schnelles Verständnis des Vue-Routing-Navigationsschutzes

Inhaltsverzeichnis 1. Globale Wache 1. Globale Fr...

So ändern Sie die Kodierung in MySQL Version 5.7 unter Windows auf UTF-8

Vorwort Ich habe gerade angefangen, MySQL zu lern...

Installations- und Konfigurationstutorial von MySQL 8.0.16 unter Win10

1. Entpacken Sie MySQL 8.0.16 Der Ordner dada und...

So wählen Sie den richtigen Index in MySQL

Schauen wir uns zunächst eine Kastanie an EXPLAIN...

10 sehr gute CSS-Fähigkeiten sammeln und teilen

Hier können Sie durch geschickten Einsatz von CSS-...

Docker-Einstellung für den Windows-Speicherpfadvorgang

Wenn Sie Docker unter Windows 10 installieren und...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.14

Dieser Artikel dokumentiert den Installations- un...

So ändern Sie die Server-UUID in MySQL

Quelle des Problems: Wenn der Slave-Server der ge...

So überwachen Sie globale Variablen im WeChat-Applet

Ich bin kürzlich bei der Arbeit auf ein Problem g...

So beheben Sie den Fehler "ERROR 1045 (28000)" beim Anmelden bei MySQL

Heute habe ich mich beim Server angemeldet und mi...