暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

Python项目中最好的5个SQL适配器

原创 佩奇 2022-09-18
1604

介绍

本文解释了什么是数据库连接器,并介绍一些流行的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

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论