MySQL-python, juga dipanggil MySQLdb, adalah pemacu paling popular untuk Python untuk menyambung ke MySQL Banyak rangka kerja juga dibangunkan berdasarkan perpustakaan ini, malangnya, ia hanya menyokong Python2.x, dan terdapat banyak prasyarat semasa pemasangan Ia adalah perpustakaan yang dibangunkan berdasarkan C. Ia sangat tidak mesra untuk dipasang pada platform Windows dan sering gagal Ia pada dasarnya tidak disyorkan untuk menggunakannya sekarang dan akan digantikan dengan versi terbitannya.
# 前置条件sudo apt-get install python-dev libmysqlclient-dev # Ubuntusudo yum install python-devel mysql-devel # Red Hat / CentOS # 安装pip install MySQL-python
#!/usr/bin/pythonimport MySQLdbdb = 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()
Disebabkan oleh kerosakan MySQL-python, versi Fork mysqlclientnya muncul kemudian, yang serasi sepenuhnya dengan MySQLdb dan menyokong Python3.x Ia adalah alat yang bergantung kepada Django ORM Jika anda ingin menggunakan SQL asli untuk mengendalikan pangkalan data. pemandu ini disyorkan. Kaedah pemasangan adalah sama seperti MySQLdb Untuk Windows, anda boleh mencari versi pakej whl yang sepadan untuk dimuat turun dan dipasang dari laman web https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient.
# Windows安装pip install some-package.whl# linux 前置条件sudo apt-get install python3-dev # debian / Ubuntusudo yum install python3-devel # Red Hat / CentOSbrew install mysql-connector-c # macOS (Homebrew)pip install mysqlclient
PyMySQL ialah pemacu yang dilaksanakan dalam Python tulen Ia tidak sepantas PyMySQL Ciri terbesarnya mungkin kaedah pemasangannya tidak begitu rumit dan ia juga serasi dengan MySQL-python.
pip install PyMySQL # 为了兼容mysqldb,只需要加入pymysql.install_as_MySQLdb()
Contohnya
import pymysqlconn = 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()
Proses menulis SQL asli sangat menyusahkan, dengan kod berulang dan tiada pemikiran berorientasikan objek Kemudian banyak pakej pembungkus dan rangka kerja ORM adalah hubungan pemetaan antara objek Python dan jadual hubungan pangkalan data, anda tidak lagi perlu menulis pernyataan SQL. Ia meningkatkan kelajuan menulis kod dan serasi dengan pelbagai sistem pangkalan data, seperti sqlite, mysql, dan postgresql Harga yang dibayar mungkin sedikit kehilangan prestasi. Jika anda biasa dengan ORM yang disertakan dengan Django, maka kos pembelajaran peewee adalah hampir sifar. Ia adalah rangka kerja ORM yang paling popular dalam Python.
pip install peewee
Contohnya
import peeweefrom peewee import *db = MySQLDatabase('jonhydb', user='john', passwd='megajonhy')class Book(peewee.Model): author = peewee.CharField() title = peewee.TextField() class Meta: database = dbBook.create_table()book = Book(author="me", title='Peewee is cool')book.save()for book in Book.filter(author="me"): print(book.title)
Dokumentasi rasmi: http://docs.peewee-orm.com/en/latest/peewee/installation.html
Jika anda ingin mencari alat yang menyokong SQL asli dan ORM, maka SQLAlchemy ialah pilihan terbaik Ia sangat hampir dengan rangka kerja Hibernate di Java.
from sqlalchemy import create_enginefrom sqlalchemy.orm import sessionmakerfrom sqlalchemy_declarative import Address, Base, Personclass 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 = engineDBSession = sessionmaker(bind=engine)session = DBSession()# Insert a Person in the person tablenew_person = Person(name='new person')session.add(new_person)session.commit()
Sekarang anda sudah hampir memahami kelebihan dan kekurangan pemacu pangkalan data ini, anda boleh memilih salah satu daripadanya untuk belajar secara sistematik dan mengaplikasikannya pada projek.
Atas ialah kandungan terperinci Bagaimana untuk menyambung ke MySQL menggunakan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!