Heim >Backend-Entwicklung >Python-Tutorial >Python verwendet pymysql, um MySQL zu betreiben

Python verwendet pymysql, um MySQL zu betreiben

高洛峰
高洛峰Original
2017-01-10 13:31:271417Durchsuche

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.

Die Einstellung von DATABASES unterscheidet sich nicht von der offiziell empfohlenen MySQLdb-Einstellung:

DATABASES = {

'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 importieren

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!

Stellungnahme:
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