适用于 Python 项目的 5 个最佳 SQL 适配器

触摸阳光 2021-09-10 12:18:27 浏览数 (2456)
反馈

介绍

本文将解释什么是数据库连接器,并介绍一些流行的 Python SQL 连接器的优缺点。


什么是数据库连接器?

数据库连接器是一种驱动程序,其工作方式类似于将软件接口连接到特定数据库供应商实现的适配器。

为什么要使用 Python 数据库连接器?

Python 的标准数据库接口是 Python DB-API。此接口仅将 MySQLdb 模块用于 MySQL。该模块独立于任何其他数据库引擎,因此我们需要编写 Python 脚本来访问任何其他数据库引擎。但是,这样做与 Python 3 不兼容。因此 Python 为我们提供了 Python 数据库连接器。

前 5 个 Python SQL 连接器列表

以下是对大多数 Python 程序员有用的前五个 Python SQL 数据库连接器的列表:

  1. pymysql
  2. MySQL数据库
  3. QTSQL
  4. Psycopg2
  5. 超级SQLite

1. pymysql

MySQL 是领先的开源数据库管理系统。它是一个多用户、多线程的数据库管理系统。MySQL 在 Web 开发工作中特别受欢迎。

安装使用

要在您的 PC 上安装 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. MySQL数据库

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 规范和线程安全(多个线程可以共享同一个连接)。它是为大量多线程应用程序设计的,这些应用程序创建和销毁大量游标并生成大量并发INSERTs 或UPDATEs。

安装和指南

要安装,请运行以下命令:

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.超级SQLite

用于 Python 的增压 SQLite 库和驱动程序。该库将内置 SQLite 包替换为为每个平台本地预编译的较新版本的 SQLite,以及本地预编译的 SQLite 扩展。

安装和指南

要安装,请运行以下命令:

bash 
pip install supersqlite

安装后,运行下面的Python代码即可使用:

from supersqlite import sqlite3 
conn = sqlite3.connect('databasefile.db') 

优点

  • 快速高效。
  • 通过 HTTP 进行远程流式传输。
  • 全文检索。

缺点

  • 没有已知的缺点。

结论

在本文中,你了解了什么是数据库连接器、为什么要在 Python 中使用数据库连接器以及最常用的 5 个 Python SQL 数据库连接器。此外,你还了解了每种连接器的优缺点以及安装和使用它们的简单程度。


0 人点赞