当前位置:
首页
文章
后端
详情

在Python项目中有那些比较使用的适配器?适用于 Python 项目的5个最佳SQL适配器!

为您的 Python 项目选择最佳 SQL 适配器

在不同的项目中我们需要使用到的接口和适配器等等这些“配件”都是不一样的而且它的选择类型还是比较多的,那么今天就来和大家分享有关于在python项目的中一些相关内容吧!

什么是数据库连接器?

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

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

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

前 5 个 Python SQL 连接器列表

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

  1. pymysql
  2. 数据库
  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 数据库连接器。此外,您还了解了每种连接器的优缺点以及安装和使用它们的简单程度。


免责申明:本站发布的内容(图片、视频和文字)以转载和分享为主,文章观点不代表本站立场,如涉及侵权请联系站长邮箱:xbc-online@qq.com进行反馈,一经查实,将立刻删除涉嫌侵权内容。

同类热门文章

深入了解C++中的new操作符:使用具体实例学习

C++中的new操作符是动态分配内存的主要手段之一。在程序运行时,我们可能需要动态地创建和销毁对象,而new就是为此提供了便利。但是,使用new也常常会引发一些问题,如内存泄漏、空指针等等。因此,本文将通过具体的示例,深入介绍C++中的new操作符,帮助读者更好地掌握其使用。


深入了解C++中的new操作符:使用具体实例学习

怎么用Java反射获取包下所有类? 详细代码实例操作

Java的反射机制就是在运行状态下,对于任何一个类,它能知道这个类的所有属性和方法;对于任何一个对象,都能调用这个对象的任意一个方法。本篇文章将通过具体的代码示例,展示如何通过Java反射来获取包下的所有类。


怎么用Java反射获取包下所有类? 详细代码实例操作

员工线上学习考试系统

有点播,直播,在线支付,三级分销等功能,可以对学员学习情况的监督监控,有源码,可二次开发。支持外网和局域网私有化部署,经过测试源码完整可用!1、视频点播:视频播放,图文资料,课件下载,章节试学,限时免

员工线上学习考试系统

了解Java中的volati关键字的作用 以及具体使用方法

本篇文章将和大家分享一下Java当中的volatile关键字,下面将为各位小伙伴讲述volatile关键字的作用以及它的具体使用方法。


了解Java中的volati关键字的作用 以及具体使用方法

Java Map 所有的值转为String类型

可以使用 Java 8 中的 Map.replaceAll() 方法将所有的值转为 String 类型: 上面的代码会将 map 中所有的值都转为 String 类型。 HashMap 是 Java

Java Map 所有的值转为String类型