Pythons Standard-Datenbankschnittstelle ist die Python DB-API, die Entwicklern eine Programmierschnittstelle für Datenbankanwendungen bietet. Python bietet eine breite Palette von Datenbankschnittstellen, um eine Vielzahl von Anforderungen an die Datenbankauswahl zu erfüllen. Sie können eine geeignete Datenbank entsprechend den Anforderungen des Projekts auswählen
Sie müssen verschiedene DB-API-Module für verschiedene Datenbanken herunterladen. Wenn Sie beispielsweise auf Oracle-Datenbank- und MySQL-Daten zugreifen müssen, müssen Sie Oracle- und MySQL-Datenbankmodule herunterladen.
Python DB-API-Nutzungsprozess:
Einführung des API-Moduls.
SQL-Anweisungen und gespeicherte Prozeduren ausführen.
Python hauptsächlich mit zwei Möglichkeiten, MySQL zu bedienen:
pip install PyMySQL
DBUtils ist ein Modul in Python Wird zum Implementieren von Datenbankverbindungspools verwendet.
Dieser Verbindungspool verfügt über zwei Verbindungsmodi:
#! /usr/bin/env python # -*- coding: utf-8 -*- # __author__ = "shuke" # Date: 2018/5/13 import pymysql # 创建连接 conn = pymysql.connect(host="127.0.0.1", port=3306, user='zff', passwd='zff123', db='zff', charset='utf8mb4') # 创建游标(查询数据返回为元组格式) # cursor = conn.cursor() # 创建游标(查询数据返回为字典格式) cursor = conn.cursor(pymysql.cursors.DictCursor) # 1. 执行SQL,返回受影响的行数 effect_row1 = cursor.execute("select * from USER") # 2. 执行SQL,返回受影响的行数,一次插入多行数据 effect_row2 = cursor.executemany("insert into USER (NAME) values(%s)", [("jack"), ("boom"), ("lucy")])# 3 # 查询所有数据,返回数据为元组格式 result = cursor.fetchall() # 增/删/改均需要进行commit提交,进行保存 conn.commit() # 关闭游标 cursor.close() # 关闭连接 conn.close() print(result) """ [{'id': 6, 'name': 'boom'}, {'id': 5, 'name': 'jack'}, {'id': 7, 'name': 'lucy'}, {'id': 4, 'name': 'tome'}, {'id': 3, 'name': 'zff'}, {'id': 1, 'name': 'zhaofengfeng'}, {'id': 2, 'name': 'zhaofengfeng02'}] """
#! /usr/bin/env python # -*- coding: utf-8 -*- # __author__ = "shuke" # Date: 2018/5/13 import pymysql # 创建连接 conn = pymysql.connect(host="127.0.0.1", port=3306, user='zff', passwd='zff123', db='zff', charset='utf8mb4') # 创建游标(查询数据返回为元组格式) cursor = conn.cursor() # 获取新创建数据自增ID effect_row = cursor.executemany("insert into USER (NAME)values(%s)", [("eric")]) # 增删改均需要进行commit提交 conn.commit() # 关闭游标 cursor.close() # 关闭连接 conn.close() new_id = cursor.lastrowid print(new_id) """ 8 """
⚠️ Da der Threadsicherheitswert von pymysql, MySQLdb usw. 1 ist, werden die Threads im Verbindungspool in diesem Modus von allen Threads gemeinsam genutzt, sodass sie Thread-sicher sind. Wenn kein Verbindungspool vorhanden ist und pymysql zum Herstellen einer Verbindung mit der Datenbank verwendet wird, gibt es bei Single-Thread-Anwendungen kein Problem. Wenn jedoch Multi-Thread-Anwendungen beteiligt sind, ist eine Sperre erforderlich . Bei vielen Anfragen nimmt die Leistung ab. 3.3 Sperrung Wird in Verbindung mit pymsql verwendet
#! /usr/bin/env python # -*- coding: utf-8 -*- # __author__ = "shuke" # Date: 2018/5/13 import pymysql # 创建连接 conn = pymysql.connect(host="127.0.0.1", port=3306, user='zff', passwd='zff123', db='zff', charset='utf8mb4') # 创建游标 cursor = conn.cursor() cursor.execute("select * from USER") # 获取第一行数据 row_1 = cursor.fetchone() # 获取前n行数据 row_2 = cursor.fetchmany(3) # # # 获取所有数据 row_3 = cursor.fetchall() # 关闭游标 cursor.close() # 关闭连接 conn.close() print(row_1) print(row_2) print(row_3)
Das obige ist der detaillierte Inhalt vonSo betreiben Sie MySQL mit Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!