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

Die Vor- und Nachteile von Nginx und LVS und ihre geeignete Nutzungsumgebung

Lassen Sie uns zu Beginn darüber sprechen, was La...

Umfassende Analyse von Prototypen, Prototypobjekten und Prototypketten in js

Inhaltsverzeichnis Prototypen verstehen Prototypo...

Index in MySQL

Vorwort Kommen wir gleich zur Sache. Die folgende...

Vue importiert Echarts, um ein Linienstreudiagramm zu realisieren

In diesem Artikel wird der spezifische Code für d...

Detaillierte Erläuterung der MySQL-Partitionsfunktion und Beispielanalyse

Zunächst: Was ist Datenbankpartitionierung? Ich h...

Einige Verbesserungen in MySQL 8.0.24 Release Note

Inhaltsverzeichnis 1. Verbindungsmanagement 2. Ve...

Ein Artikel erklärt den Klassenlademechanismus von Tomcat

Inhaltsverzeichnis - Vorwort - - JVM-Klassenlader...

Einführung und Verwendung von Triggern und Cursorn in MySQL

Trigger-Einführung Ein Trigger ist eine spezielle...

Über IE8-Kompatibilität: Erklärung des X-UA-Compatible-Attributs

Problembeschreibung: Code kopieren Der Code laute...

MP3- oder Flashplayer-Code auf der Webseite abspielen

Code kopieren Der Code lautet wie folgt: <Obje...

Installieren Sie mehrere PHP-Versionen für Nginx unter Linux

Wenn wir die LNPM-Serverumgebung installieren und...