Heim >Backend-Entwicklung >Python-Tutorial >Python verwendet pymysql, um MySQL zu betreiben
pymsql ist ein Modul in Python, das MySQL betreibt. Seine Verwendung ist fast die gleiche wie MySQLdb. Aber derzeit unterstützt pymysql python3.x und letzteres unterstützt Version 3.x nicht.
Anwendbare Umgebung
Python-Version>=2.6 oder 3.3
MySQL-Version>=4.1
Installation
Sie können pip zum Installieren verwenden oder manuell herunterladen und installieren.
Verwenden Sie pip zur Installation und führen Sie den folgenden Befehl in der Befehlszeile aus:
pip install PyMySQL
Zur manuellen Installation laden Sie bitte zuerst herunter. Download-Adresse: https://github.com/PyMySQL/PyMySQL/tarball/pymysql-X.X.
X.X ist die Version (die aktuellste verfügbare Version ist 0.6.6).
Entpacken Sie nach dem Herunterladen das komprimierte Paket. Geben Sie das dekomprimierte Verzeichnis in der Befehlszeile ein und führen Sie die folgenden Anweisungen aus:
python setup.py install
Es wird empfohlen, zur Installation pip zu verwenden.
Anwendungsbeispiel
Stellen Sie wie folgt eine Verbindung zur Datenbank her:
import pymysql.cursors # Connect to the database connection = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='zhyea.com', db='employees', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor)
Sie können die Verbindungsparameter auch mithilfe eines Wörterbuchs verwalten :
import pymysql.cursors config = { 'host':'127.0.0.1', 'port':3306, 'user':'root', 'password':'zhyea.com', 'db':'employees', 'charset':'utf8mb4', 'cursorclass':pymysql.cursors.DictCursor, } # Connect to the database connection = pymysql.connect(**config)
Daten einfügen:
Sie müssen den Cursor abrufen, bevor Sie die SQL-Anweisung ausführen, da die Konfiguration automatisch übermittelt wird Standardmäßig müssen Sie nach der Ausführung der SQL-Anweisung die Initiative ergreifen. Vergessen Sie nicht, die Verbindung am Ende zu schließen:
from datetime import date, datetime, timedelta import pymysql.cursors #连接配置信息 config = { 'host':'127.0.0.1', 'port':3306, 'user':'root', 'password':'zhyea.com', 'db':'employees', 'charset':'utf8mb4', 'cursorclass':pymysql.cursors.DictCursor, } # 创建连接 connection = pymysql.connect(**config) # 获取明天的时间 tomorrow = datetime.now().date() + timedelta(days=1) # 执行sql语句 try: with connection.cursor() as cursor: # 执行sql语句,插入记录 sql = 'INSERT INTO employees (first_name, last_name, hire_date, gender, birth_date) VALUES (%s, %s, %s, %s, %s)' cursor.execute(sql, ('Robin', 'Zhyea', tomorrow, 'M', date(1989, 6, 14))); # 没有设置默认自动提交,需要主动提交,以保存所执行的语句 connection.commit() finally: connection.close();Ausführen die Abfrage:
import datetime import pymysql.cursors #连接配置信息 config = { 'host':'127.0.0.1', 'port':3306, 'user':'root', 'password':'zhyea.com', 'db':'employees', 'charset':'utf8mb4', 'cursorclass':pymysql.cursors.DictCursor, } # 创建连接 connection = pymysql.connect(**config) # 获取雇佣日期 hire_start = datetime.date(1999, 1, 1) hire_end = datetime.date(2016, 12, 31) # 执行sql语句 try: with connection.cursor() as cursor: # 执行sql语句,进行查询 sql = 'SELECT first_name, last_name, hire_date FROM employees WHERE hire_date BETWEEN %s AND %s' cursor.execute(sql, (hire_start, hire_end)) # 获取查询结果 result = cursor.fetchone() print(result) # 没有设置默认自动提交,需要主动提交,以保存所执行的语句 connection.commit() finally: connection.close();Hier abfragen Ein Abfrageergebnis wird abgerufen und das Abfrageergebnis in Form eines Wörterbuchs zurückgegeben: Um die angegebene Nummer zu erhalten Um Datensätze aus der Ergebnismenge abzurufen, können Sie die fetchmany-Methode verwenden: result = Cursor.fetchmany(2)Es wird jedoch nicht empfohlen, sie auf diese Weise zu verwenden Legen Sie die Gesamtzahl der in der SQL-Anweisung abgefragten Datensätze fest. Um den gesamten Ergebnissatz zu erhalten, können Sie die fetchall-Methode verwenden: result =cursor.fetchall()Da es nur zwei Datensätze gibt, gibt es zwei Abfragemethoden oben erwähnt Die gefundenen Ergebnisse sind die gleichen:
verwendet in Django
[{'last_name': 'Vanderkelen', 'hire_date': datetime.date(2015, 8, 12), 'first_name': 'Geert'}, {'last_name': 'Zhyea', 'hire_date': datetime.date(2015, 8, 21), 'first_name': 'Robin'}]
verwendet in Django war der ursprüngliche Zweck meiner Suche danach. Derzeit ist es nicht einfach, ein Datenbank-Backend zu finden, das sowohl Python3.4 als auch Django1.8 unterstützt. Das ist das Beste, was ich bisher gefunden habe.
'default': {
'ENGINE': 'django.db.backends ', 'NAME': 'mytest',
'BENUTZER': 'root',
'PASSWORT': 'zhyea.com',
'HOST': '127.0.0.1' ,
'PORT': '3306',
}
}
Der Schlüssel ist hier: Wir müssen auch den folgenden Inhalt zur __init__.py-Datei der Site hinzufügen :
pymysql.install_as_MySQLdb()
Abschließend werde ich den Code zum Hinzufügen, Löschen, Ändern und Einchecken von pymysql anhängen
Weitere Artikel zum Thema Python mit pymysql zum Betreiben von MySQL finden Sie auf der chinesischen PHP-Website!