Heim > Backend-Entwicklung > Python-Tutorial > Ausführliche Erläuterung verschiedener Möglichkeiten, mit Python_python eine Verbindung zu MySQL herzustellen

Ausführliche Erläuterung verschiedener Möglichkeiten, mit Python_python eine Verbindung zu MySQL herzustellen

不言
Freigeben: 2018-04-04 16:24:04
Original
1527 Leute haben es durchsucht

In diesem Artikel werden hauptsächlich verschiedene Möglichkeiten zum Herstellen einer Verbindung zu MySQL mithilfe von Python vorgestellt. Sie können eine angemessene Verbindungsmethode entsprechend der tatsächlichen Situation auswählen.

Obwohl viele NoSQL-Datenbanken populär geworden sind In den letzten Jahren ist es großartig, aber relationale Datenbanken wie MySQL gehören immer noch zu den Mainstream-Datenbanken im Internet. Jeder, der Python lernt, muss eine Datenbank gut beherrschen, egal ob er Datenanalyse, Webcrawler, Webentwicklung oder maschinelles Lernen betreibt Wenn Sie lernen, können Sie nicht darauf verzichten, sich mit Datenbanken zu befassen, und MySQL ist die beliebteste Datenbank. In diesem Artikel werden verschiedene Möglichkeiten zum Betrieb von MySQL in Python vorgestellt. Sie können entsprechend der tatsächlichen Situation während des tatsächlichen Entwicklungsprozesses auswählen.

1. MySQL-Python

MySQL-Python, auch MySQLdb genannt, ist der beliebteste Treiber für Python, um eine Verbindung zu MySQL herzustellen Es wird auch von vielen Frameworks verwendet, die auf dieser Bibliothek basieren. Leider unterstützt es nur Python2. Es ist grundsätzlich veraltet und wird durch seine Derivate ersetzt.

# 前置条件
sudo apt-get install python-dev libmysqlclient-dev # Ubuntu
sudo yum install python-devel mysql-devel # Red Hat / CentOS
# 安装
pip install MySQL-python
Nach dem Login kopieren

Windows wird direkt installiert, indem Sie die exe-Datei herunterladen. Antworten Sie mit „win“ auf das öffentliche Konto, um den Download-Link zu erhalten

#!/usr/bin/python
import MySQLdb
db = MySQLdb.connect(
   host="localhost",  # 主机名
   user="john",     # 用户名
   passwd="megajonhy", # 密码
   db="jonhydb")    # 数据库名称
# 查询前,必须先获取游标
cur = db.cursor()
# 执行的都是原生SQL语句
cur.execute("SELECT * FROM YOUR_TABLE_NAME")
for row in cur.fetchall():
  print(row[0])
db.close()
Nach dem Login kopieren

2. mysqlclient

Aufgrund des Verfalls von MySQL-Python erschien seine Fork-Version mysqlclient später, das vollständig kompatibel mit MySQLdb ist, das auch Python3.x unterstützt und ein abhängiges Tool von Django ORM ist. Wenn Sie natives SQL zum Betrieb der Datenbank verwenden möchten, wird dieser Treiber empfohlen. Die Installationsmethode ist die gleiche wie bei MySQLdb. Die entsprechende Version des WHL-Pakets finden Sie unter https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient.

# Windows安装
pip install some-package.whl
# linux 前置条件
sudo apt-get install python3-dev # debian / Ubuntu
sudo yum install python3-devel # Red Hat / CentOS
brew install mysql-connector-c # macOS (Homebrew)
pip install mysqlclient
Nach dem Login kopieren

3. PyMySQL

PyMySQL ist ein in reinem Python implementierter Treiber. Sein größtes Merkmal ist möglicherweise, dass seine Installationsmethode nicht so umständlich ist.

pip install PyMySQL
# 为了兼容mysqldb,只需要加入
pymysql.install_as_MySQLdb()
Nach dem Login kopieren

Ein Beispiel

import pymysql
conn = pymysql.connect(host='127.0.0.1', user='root', passwd="xxx", db='mysql')
cur = conn.cursor()
cur.execute("SELECT Host,User FROM user")
for r in cur:
  print(r)
cur.close()
conn.close()
Nach dem Login kopieren

4 🎜> Der Prozess des Schreibens von nativem SQL ist sehr umständlich, mit repetitivem Code und ohne objektorientiertes Denken. Dann wurden viele Wrapper-Pakete und ORM-Frameworks geboren , müssen Sie keine SQL-Anweisung mehr schreiben. Es verbessert die Geschwindigkeit beim Schreiben von Code und ist mit einer Vielzahl von Datenbanksystemen kompatibel, z. B. SQLite, MySQL und PostgreSQL. Der gezahlte Preis kann mit einem gewissen Leistungsverlust verbunden sein. Wenn Sie mit dem mit Django gelieferten ORM vertraut sind, liegen die Lernkosten für Peewee bei nahezu Null. Es ist das beliebteste ORM-Framework in Python.

Ein Beispielpip install peewee

import peewee
from peewee import *
db = MySQLDatabase('jonhydb', user='john', passwd='megajonhy')
class Book(peewee.Model):
  author = peewee.CharField()
  title = peewee.TextField()
  class Meta:
    database = db
Book.create_table()
book = Book(author="me", title='Peewee is cool')
book.save()
for book in Book.filter(author="me"):
  print(book.title)
Nach dem Login kopieren
Offizielle Dokumentation: http://docs.peewee-orm .com/en/latest/peewee/installation.html

5. SQLAlchemy

Wenn Sie eine Software finden möchten, die natives SQL unterstützt und Tools, die ORM unterstützen, ist SQLAlchemy die beste Wahl, da es dem Hibernate-Framework in Java sehr nahe kommt.

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy_declarative import Address, Base, Person
class Address(Base):
  __tablename__ = 'address'
  id = Column(Integer, primary_key=True)
  street_name = Column(String(250))
engine = create_engine('sqlite:///sqlalchemy_example.db')
Base.metadata.bind = engine
DBSession = sessionmaker(bind=engine)
session = DBSession()
# Insert a Person in the person table
new_person = Person(name='new person')
session.add(new_person)
session.commit()
Nach dem Login kopieren
Da Sie nun die Vor- und Nachteile dieser Datenbanktreiber fast verstanden haben, können Sie einen davon auswählen, um ihn systematisch zu studieren, und dann war es soweit Ich wünsche Ihnen viel Spaß beim Lernen. Wenn Sie es nicht verstehen, können Sie mich kontaktieren.

Verwandte Empfehlungen:


Ein Beispiel-Tutorial für die Verbindung von Python mit SQLite

Detaillierte Erklärung eines Beispiels für die Verbindung von Python mit impala

Wie man Mongodb mit Python verbindet und betreibt

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung verschiedener Möglichkeiten, mit Python_python eine Verbindung zu MySQL herzustellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen 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