Beispiel für eine Python 3.x-Datenbankverbindung (pymysql-Methode)

高洛峰
Freigeben: 2017-02-23 15:59:13
Original
1402 Leute haben es durchsucht

Da das MySQLdb-Modul Python3.x noch nicht unterstützt, müssen Sie das pymysql-Modul installieren, wenn Python3.x eine Verbindung zu MySQL herstellen möchte.

Das PyMySQL-Modul kann über Pip installiert werden. Wenn Sie jedoch die Pycharm-IDE verwenden, können Sie Project Python verwenden, um Module von Drittanbietern zu installieren.

[Datei] >> [Projekt: Python] >> [Schaltfläche „Installieren“]

Python 3.x 连接数据库示例(pymysql 方式)

Da Python die Datenbankverbindungsschnittstelle vereinheitlicht, sind pymysql und MySQLdb in der Verwendung ähnlich:

pymysql.Connect() Parameterbeschreibung

  • host(str): MySQL-Serveradresse

  • port(int): MySQL-Server-Portnummer

  • user (str): Benutzername

  • passwd(str): Passwort

  • db(str): Datenbankname

  • charset (str): Verbindungskodierung

Vom Verbindungsobjekt unterstützte Methoden

  • cursor() Verwenden Sie diese Verbindung zum Erstellen und einen Cursor zurückgeben

  • commit() Die aktuelle Transaktion festschreiben

  • rollback() Die aktuelle Transaktion zurücksetzen

  • close() Verbindung schließen

Vom Cursorobjekt unterstützte Methoden

  • execute(op) Ausführen ein Datenbankabfragebefehl

  • fetchone() Holen Sie sich die nächste Zeile des Ergebnissatzes

  • fetchmany(size) Holen Sie sich die nächsten Zeilen des Ergebnismenge

  • fetchall() Alle Zeilen in der Ergebnismenge abrufen

  • rowcount() Gibt die Anzahl der Datenelemente oder die Anzahl von zurück betroffene Zeilen

  • close() Das Cursorobjekt schließen

================= =MySQL======== ===========

Erstellen Sie zunächst eine Transaktionstabelle, bevor Sie eine Verbindung zur Datenbank herstellen, um das Testen der Funktionen von pymysql zu erleichtern:

DROP TABLE IF EXISTS `trade`;

CREATE TABLE `trade` (
 `id` int(4) unsigned NOT NULL AUTO_INCREMENT,
 `name` varchar(6) NOT NULL COMMENT '用户真实姓名',
 `account` varchar(11) NOT NULL COMMENT '银行储蓄账号',
 `saving` decimal(8,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '账户储蓄金额',
 `expend` decimal(8,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '账户支出总计',
 `income` decimal(8,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '账户收入总计',
 PRIMARY KEY (`id`),
 UNIQUE KEY `name_UNIQUE` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
INSERT INTO `trade` VALUES (1,'乔布斯','18012345678',0.00,0.00,0.00);
Nach dem Login kopieren

==================Python============ ========

Verwenden Sie ein Python-Skript, um das Hinzufügen, Löschen, Ändern, Abfragen und die Transaktionsverarbeitung zu implementieren. Der Quellcode lautet wie folgt:

import pymysql.cursors

# 连接数据库
connect = pymysql.Connect(
  host='localhost',
  port=3310,
  user='woider',
  passwd='3243',
  db='python',
  charset='utf8'
)

# 获取游标
cursor = connect.cursor()

# 插入数据
sql = "INSERT INTO trade (name, account, saving) VALUES ( '%s', '%s', %.2f )"
data = ('雷军', '13512345678', 10000)
cursor.execute(sql % data)
connect.commit()
print('成功插入', cursor.rowcount, '条数据')

# 修改数据
sql = "UPDATE trade SET saving = %.2f WHERE account = '%s' "
data = (8888, '13512345678')
cursor.execute(sql % data)
connect.commit()
print('成功修改', cursor.rowcount, '条数据')

# 查询数据
sql = "SELECT name,saving FROM trade WHERE account = '%s' "
data = ('13512345678',)
cursor.execute(sql % data)
for row in cursor.fetchall():
  print("Name:%s\tSaving:%.2f" % row)
print('共查找出', cursor.rowcount, '条数据')

# 删除数据
sql = "DELETE FROM trade WHERE account = '%s' LIMIT %d"
data = ('13512345678', 1)
cursor.execute(sql % data)
connect.commit()
print('成功删除', cursor.rowcount, '条数据')

# 事务处理
sql_1 = "UPDATE trade SET saving = saving + 1000 WHERE account = '18012345678' "
sql_2 = "UPDATE trade SET expend = expend + 1000 WHERE account = '18012345678' "
sql_3 = "UPDATE trade SET income = income + 2000 WHERE account = '18012345678' "

try:
  cursor.execute(sql_1) # 储蓄增加1000
  cursor.execute(sql_2) # 支出增加1000
  cursor.execute(sql_3) # 收入增加2000
except Exception as e:
  connect.rollback() # 事务回滚
  print('事务处理失败', e)
else:
  connect.commit() # 事务提交
  print('事务处理成功', cursor.rowcount)

# 关闭连接
cursor.close()
connect.close()
Nach dem Login kopieren

============== ====Testergebnisse====================

Python 3.x 连接数据库示例(pymysql 方式)

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für alle hilfreich ist. Das Lernen ist hilfreich und ich hoffe, dass jeder die chinesische PHP-Website unterstützt.

Weitere Artikel zu Python 3.x-Datenbankverbindungsbeispielen (pymysql-Methode) finden Sie auf der chinesischen PHP-Website!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage