首页 » 友链在线 » Python中有没有操作Oracle、Mysql、Sqlite的通用方法或者第三方库?有什么推荐「python 数据库驱动」

Python中有没有操作Oracle、Mysql、Sqlite的通用方法或者第三方库?有什么推荐「python 数据库驱动」

访客 2024-11-20 0

扫一扫用手机浏览

文章目录 [+]

Python中有没有操作Oracle、Mysql、Sqlite的通用方法或者第三方库?有什么>保举/h2>

对于操作Oracle、Mysql、Sqlite等多种关系型数据库,推荐>利用span style="font-weight: bold;"> Python Records模块 ,其适用于绝大多数关系型数据库的原始SQL操作,同时支持将查询结果导出到xlsx, xls, csv, json, yaml, pandas, html等文件中,强无敌!


我们在开发过程中经常会涉及与数据库进行交互,比如题目中提到的MySQL、Oracle、PostgreSQL、Sqlite关系型数据库。较以往,我们会选择其对应的Python 第三方模块,实现相关数据库的增删改查等操作,不同数据库对应的Python模块如下:

Python中有没有操作Oracle、Mysql、Sqlite的通用方法或者第三方库?有什么推荐「python 数据库驱动」 Python中有没有操作Oracle、Mysql、Sqlite的通用方法或者第三方库?有什么推荐「python 数据库驱动」 友链在线

  • Oracle数据库: cx_Oracle
  • MySQL数据库:mysql-connector,pymysql
  • PostgreSQL数据库:psycopg2
  • SQLite数据库: sqlite3

就像,问题到提到的那样,当同一程序中需要操作不同的数据库时,有没有一种通用的方式或者模块,可以实现不同数据的各种操作呢?否则,我们将不得不面临一个问题,当代码中涉及不同数据库操作时,容易出现代码冗余、不规范,风格不统一等等问题。

Python中有没有操作Oracle、Mysql、Sqlite的通用方法或者第三方库?有什么推荐「python 数据库驱动」 Python中有没有操作Oracle、Mysql、Sqlite的通用方法或者第三方库?有什么推荐「python 数据库驱动」 友链在线
(图片来自网络侵删)

那么究竟有没有一种通用而优雅的支持各种数据库操作的库呢?答案是肯定,SQLAlchemy库。

后来接触到 Python SQLAlchemy(ORM框架),其一定程度上解决了各数据库的SQL差异,可是 SQLAlchemy 在消除不同数据库间SQL差异的同时,引入了各框架CRUD的差异。可开发人员往往是具备一定的SQL基础。假如一个框架强制用户只能使用它规定的CRUD形式,那反而增加用户的学习成本,导致学习曲线增长。

当然你也可以尝试SQLAlchemy,那么除了SQLAlchemy 我们还有其他选择吗?


遇见 Records

Records 是一个使用简单且功能非常强大的库,适用于绝大多数关系型数据库的 原始SQL操作。强无敌!

Records 有哪些特点呢,如下:

  • 其基于 SQLAlchemy 与 Tablib 开发。
  • 使用简单且统一。
  • 支持缓存查询的数据。
  • 无需关注数据连接状态,自动实现上下文管理器。
  • 支持数据库事务,能够保持数据的原子性和一致性。
  • 支持安全的参数化查询,防止 因SQL语句不规范而导致安全问题发生。
  • 支持主流数据库,如 Oracle, MySQL,Postgres,SQLite等关系型数据库。

御剑 Records

接下来,我们在Windows 10的Python3环境中,使用pip方式进行安装Records,命令如下:

pip install records

安装过程非常简单,如下:

接下来,我们以SQLite数据库为例,介绍如何使用 Records 进行数据库CRUD操作。

关于不同数据库的统一连接方式,如下:

Records 基于 SQLAlchemy 实现的,因此数据库的统一连接方式与SQLAlchemy 相同,如下

Records 操作各种数据的步骤也非常简单,如下:

  1. 连接数据库,获取数据库对象。
  2. 使用数据库对象的 query 方法执行增删改查SQL 语句。
  3. 根据开发需求,使用 all方法获取查询结果进行处理。

说了这么多,接下来,让我们了解下如何使用Records 完成数据库的增删改查等操作。


创建表


数据写入

Records 支持安全的参数化,我们可以使用 :variable 定义变量,然后通过传入参数完成动态传值,对于需要动态加载数据的场景来说非常的高效,如批量入库操作。


数据批量写入

我们使用SQL 语句实现数据批量入库时,操作比较冗余, Records 模块提供了 bulk_query 方法能够非常简洁的插入数据和更新数据,如下。


数据查询

我们可以通过 all 方法获取执行SQL所返回的全部记录,first 方法是获取第一条记录。


字段获取

我们可以像操作字典那样,直接获取对应字段的查询结果,如下:

执行上述代码,输出结果如下:

数据导出

我们可以将查询的结果直接导出到xlsx当中,如下:

执行上述代码,实现数据库查询结果的导出到xlsx中,如下:

数据导出为yaml

我们也可以将查询结果直接导出到yaml文件中,如下:

此外,还支持导出为xls, csv, json,pandas, html 等多种数据格式。

当然是有的,这里推荐一个第三方库—SQLAlchemy,一个著名的Python ORM框架,基于对象关系模型对数据库进行操作(增删改查等),支持目前主流的关系型数据库,包括Oracle、Mysql、Sqlite等,感兴趣的朋友可以尝试一下:

01

安装SQLAlchemy

这个非常简单,打开cmd窗口,直接输入命令“pip install sqlalchemy”即可,程序会自动检测相关依赖包并进行安装:

02

操作MySQL数据库

安装完成后,我们就可以直接使用SQLAlchemy框架操作MySQL数据库了(这里需要下载pymysql模块),测试代码如下,以简单的数据查询为例,基本思想先创建一个数据库连接,然后定义一个对象类(对应需要操作的数据表),最后再执行相关查询即可,这里不需要编写SQL语句,框架自带有详细的查询函数,功能非常强大:

增删改数据也非常容易,在上面数据库连接的基础上,直接调用>相干span>修改函数就行,这里需要注意的是,一定要进行commit提交,否则数据库不会更新:

03

操作Oracle、SQLite数据库

因为是基于ORM对象模型对数据库进行操作,因此在数据表结构不变的情况下,只需修改数据库连接的URL就行,其他代码不需修改也能正常进行数据库操作:

  • Oracle数据库:>依靠span style="text-decoration-line: underline;">cx_oracle(需要单独下载)

engine = create_engine('oracle://Username:Password@IP:Port/DBName')
  • SQLite数据库:内置驱动,直接>利用/span>

engine = create_engine('sqlite:///SQLite数据库路径')

至此,我们就完成了利用SQLAlchemy操作Oracle、Mysql、Sqlite数据库。总的来说,整个过程非常简单,只要你熟悉一下使用过程,很快就能掌握的,官方也自带有非常详细的入门教程,非常适合初学者学习,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。

Python里面有什么好用且有趣的模块

如果你想下载腾讯视频、优酷、爱奇艺里面的视频,你一定要试试you-get这个模块,实在太好用了,当然也可以下载youtube的视频,让我惊艳的是它居然支持国内网站下载。

You-Get是一个小型命令行实用程序,用于从Web下载媒体内容(视频,音频,图像),以防没有其他方便的方法。

以下是您如何使用 它从YouTube下载视频:

这可能是为什么你可能想要使用它:

  • 您在互联网上享受了一些东西,只是想为了您自己的乐趣下载它们。

  • 您可以通过计算机在线观看自己喜欢的视频,但禁止保存。 您觉得自己无法控制自己的计算机。 (并不是一个开放的Web应该如何工作。)

  • 您希望摆脱任何闭源技术或专有JavaScript代码,并禁止在您的计算机上运行Flash等内容。

  • 你是黑客文化和自由软件的坚持者。

你能得到什么:

  • 从热门网站下载视频/音频,例如YouTube,优酷,Niconico等等。 (查看支持的网站的完整列表)
  • 在媒体播放器中流式传输在线视频。 没有网络浏览器,没有更多广告。

  • 通过抓取网页下载(感兴趣的)图像。

  • 下载任意非HTML内容,即二进制文件。

有兴趣的朋友可以试一试,做为一个资深电影迷,上手也简单,真的挺好用的。


我会在这里发布所有与科技、科学有关的有趣文章,欢迎订阅我的头条号。偶尔也回答有趣的问题,有问题可随时在评论区回复和讨论。

(码字不易,若文章对你帮助可点赞支持~)

谢邀!个人见解,希望对你有帮助~


matplotlib


matplotlib 是python的画图模块,可以绘制各种图,包括折线图、散点图、饼状图等,并且可以绘制多个子图,标注图中特殊点等,绘制出的图片十分优美。

调用接口十分友好,非常适合快速上手画图的需求。

留言 点赞 关注

我们一起分享AI学习与发展的干货

欢迎关注全平台AI垂类自媒体 “读芯术”

相关文章