介绍
本文解释了什么是数据库连接器,并介绍一些流行的Python SQL连接器,以及它们的优点和缺点。
什么是数据库连接器?
数据库连接器是一个类似于适配器的驱动程序,将软件接口连接到特定数据库供应商的实现。
为什么使用Python数据库连接器?
Python 的标准数据库接口是 Python DB-API。这个接口使用MySQLdb模块,只适用于MySQL。这个模块独立于其他任何数据库引擎,所以我们需要写Python脚本来访问其他任何数据库引擎。然而,这样做与Python 3并不兼容。因此Python为我们提供了Python数据库连接器。
排名前五的Python SQL连接器的列表
下面列表是大多数Python程序员最常用的五个Python SQL数据库连接器。
- PyMySQL
- MySQLdb
- QTSQL
- Psycopg2
- SuperSQLite
1. PyMySQL
MySQL是一个领先的开源数据库管理系统。它是一个多用户、多线程的数据库管理系统。MySQL在web开发工作中特别受欢迎。
安装和使用
在你的电脑上安装PyMySQL,运行下面的命令:
bash
pip install pymysql
安装完后,通过运行下面Python代码测试数据库连接:
import pymysql
con = pymysql.connect('localhost', 'username',
'password', 'db_name’')
with con.cursor() as cur:
cur.execute('SELECT VERSION()')
version = cur.fetchone()
print(f'Database version: {version[0]}')
con.close()
优点
- 大多数公共API与mysqlclient和MySQLdb兼容。
- 同时支持Python 2和3。
- 同时支持MySQL和MariaDB服务器。
缺点
不支持_mysql提供的低级API,如data_seek、store_result和use_result。
2.MySQLdb
MySQLdb是一个与MySQL数据库服务器的接口,并且是线程兼容的,它提供了Python数据库API。
安装和使用
要安装MySQLdb模块,运行下面的命令:
bash
# For Ubuntu, use the following command -
sudo apt-get install python-pip python-dev libmysqlclient-dev
# For Fedora, use the following command -
sudo dnf install python python-devel mysql-devel redhat-rpm-config gcc
#For Python command prompt, use the following command -
pip install MySQL-python
运行下面Python代码使用该连接器:
from MySQLdb import _mysql
db=_mysql.connect()
db=_mysql.connect(host="localhost",user="username",
passwd="password",db="db_name")
优点
- 速度快,用C语言构建。
- 纯SQL。
- 支持MySQL。
缺点
- 不支持Python 3。
- 必须写SQL代码。
- 需要自己管理游标,不能用缓存、参数化等。
- 如果不重写所有的数据库代码,就不能切换到不同的数据库。
3. QTSQL
QTSQL是一个数据库连接器,用于将数据库与PYQT5应用程序集成。需要注意的是,QTSQL主要用于UI应用程序(QT毕竟是一个GUI工具包)。
安装和使用
QTSQL需要先安装PYQT5。
在Python代码导入模块并使用:
from PyQt5 import QtSql
连接数据库:
self.QSqlDatabase.addDatabase("QMYSQL")
self.db.setHostName("host_name")
self.db.setDatabaseName("database_name")
self.db.setUserName("username")
self.db.setPassword("password")
上面代码中的第一个参数QSqlDatabase.addDatabase用于添加驱动程序(例如,QPSQL、QMYSQL、QOCI、QODBC、QSQLITE等)。接下来的四个命令setHostName()、setDatabaseName()、setUserName()和setPassword() 初始化了数据库连接。QSqlDatabase.open() 方法打开数据库,并在初始化后访问它。
优点
- 只使用Qt库。
- 它返回Qt对象,所以它将与Qt的标准部件集成。
- 可以使用Qt支持的任何数据库后端(MySQL、SQLite)。
缺点
- 仍需要写SQL。
4. Psycopg2
Psycopg是Python编程语言中最流行的PostgreSQL数据库适配器。它的主要特性是完全实现了Python DB API 2.0规范和线程安全性(多个线程可以共享同一个连接)。它是为大量多线程的应用程序设计的,这些应用程序创建和销毁很多游标,同时进行大量的并发插入或更新。
安装和使用
运行下面命令进行安装:
bash pip install psycopg2
安装完后,运行下面Python代码:
import psycopg2
try:
conn = psycopg2.connect("dbname='template1' user='dbuser' host='localhost' password='dbpass'")
except:
print "I am unable to connect to the database"
cur = conn.cursor()
cur.execute("""SELECT datname from pg_database""")
优点
- 快速和高效。
- 支持多个连接和连接对象。
- 支持异步查询。
缺点
- 缺少文档。
5. SuperSQLite
一个用于连接Python SQLite库和驱动。这个库用为每个平台预编译了最新版本的SQLite,以及预编译的SQLite扩展,从而取代了内置的SQLite包。
安装和使用
运行下面命令进行安装:
bash pip install supersqlite
安装完后,运行下面Python代码:
from supersqlite import sqlite3
conn = sqlite3.connect('databasefile.db')
优点
- 快速和高效。
- 通过Http的远程流。
- 全文检索。
缺点
- 没有已知的缺点。
总结
在这篇文章中,你了解了什么是数据库连接器,为什么要在python中使用数据库连接器,以及要最长用的前5个Python SQL连接器。此外,你还了解了每个连接器的优点和缺点,以及安装和使用它们。
如果有任何问题,请在Twitter上联系我。@LordChuks3。
原文标题:The 5 Best SQL Adapters for Your Python Project
原文作者:Ochuko Onojakpor
原文地址:https://dzone.com/articles/best-sql-adapters-for-your-python-project




