Python接入不同类型数据库的通用接口方法

Python012

Python接入不同类型数据库的通用接口方法,第1张

日常数据管理工作中,需要处理存储在不同类型数据库系统的数据。对这些数据的管理,常见的是使用Navicat,DBeaver等管理工具。在对大量数据分析时,需要提取到Python/R中进行处理。下面 探索 Python调用MySQL,MongoDB,InfluxDB等多种类型数据库通用连接方法。实现方式是在Python中封装各类数据库接口包。

实现后的效果:1.安全。接口信息封装便于保密管理;2.复用。一次封装,永久复用;3.上手快。方便不熟悉python和数据调用的同学,只会简单的sql即可使用,省时省力。

下面以MySQL,MongoDB,InfluxDB为例定义接口方法,然后把它们封装成1个通用方法。

mysql_get(sql,db):

mongo_get(sql,db):

influx_get(sql,db):

可以看到,以上函数共同调用的参数为sql和db。我们再增加一个参数db_type,将构造一个通用的方法对以上数据库调用。

同理,其他类型的数据库也可以加入到这个通用框架中,包括但不限于各类关系型,键值型,时序型数据库。

调用windows API的方式其实有两种,第一种是通过第三方模块pywin32。

如果小伙伴安装了pip,可以通过pip安装pywin32

在命令行中运行pip pst查看是否安装了pywin32

如图

我们这里调用一个windows最基本的API,MessageBox,该接口可以显示一个对话框。

这里小编就不过多介绍了,只简单的描述MessageBox接口,MessageBox是windows的一个API接口,作用是显示一个对话框。

原型为:

int WINAPI MessageBox(HWND hWnd,LPCTSTR lpText,LPCTSTR lpCaption,UINT uType)

第一个参数hWnd,指明了该对话框属于哪个窗口,lpText为窗口提示信息,lpCaption则为窗口标题,uType则是定义对话框的按钮和图标。

这里我们需要导入win32api这个模块(隶属于pywin32),如果需要宏定义的,API的宏被定义在win32con(同隶属于pywin32)模块内。

这里我们只导入一个win32api模块,然后简单的调用MessageBox显示一个对话框即可。

如果我们不会安装pywin32模块,或者说不想安装这个三方模块。这时我们还有一个办法。

调用python内置模块ctypes,如果小伙伴有windows编程基础的话,或者看过一点MSDN的话,都该知道,Windows的API其实是以dll文件(动态链接库)方式存在的。

+和|效果是相同的

更多Python相关技术文章,请访问Python教程栏目进行学习!以上就是小编分享的关于python怎么调用api接口的详细内容希望对大家有所帮助,更多有关python教程请关注环球青藤其它相关文章!

Web Service是一个[平台](https://baike.baidu.com/item/平台/1064049)独立的,低耦合的,自包含的、基于可[编程](https://baike.baidu.com/item/编程)的web的应用程序,可使用开放的[XML](https://baike.baidu.com/item/XML)([标准通用标记语言](https://baike.baidu.com/item/标准通用标记语言/6805073)下的一个子集)[标准](https://baike.baidu.com/item/标准/219665)来[描述](https://baike.baidu.com/item/描述/8928757)、发布、发现、协调和配置这些应用程序,用于开发分布式的交互操作的[应用程序](https://baike.baidu.com/item/应用程序/5985445)。 [1]

Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。Web Service是自描述、 自包含的可用网络模块, 可以执行具体的业务功能。Web Service也很容易部署, 因为它们基于一些常规的产业标准以及已有的一些技术,诸如[标准通用标记语言](https://baike.baidu.com/item/标准通用标记语言/6805073)下的子集[XML](https://baike.baidu.com/item/XML)、HTTP。Web Service减少了应用接口的花费。Web Service为整个企业甚至多个组织之间的业务流程的集成提供了一个通用机制。

**SOAP**

SOAP即[简单对象访问协议](https://baike.baidu.com/item/简单对象访问协议)(Simple Object Access Protocol),它是用于交换[XML](https://baike.baidu.com/item/XML)([标准通用标记语言](https://baike.baidu.com/item/标准通用标记语言)下的一个子集)编码信息的轻量级协议。它有三个主要方面:XML-envelope为描述信息内容和如何处理内容定义了框架,将程序对象编码成为XML对象的规则,执行[远程过程调用](https://baike.baidu.com/item/远程过程调用)(RPC)的约定。SOAP可以运行在任何其他[传输协议](https://baike.baidu.com/item/传输协议)上。例如,你可以使用 SMTP,即因特网[电子邮件协议](https://baike.baidu.com/item/电子邮件协议)来传递SOAP消息,这可是很有诱惑力的。在[传输层](https://baike.baidu.com/item/传输层)之间的头是不同的,但XML有效负载保持相同。

Web Service 希望实现不同的系统之间能够用“[软件](https://baike.baidu.com/item/软件)-软件对话”的方式相互调用,打破了软件应用、网站和各种设备之间的格格不入的状态,实现“基于Web无缝集成”的目标。

使用Python实现服务端

service.py 服务端启动文件

app.py webservice接口

使用Python实现客户端

client.py

上面调用的客户端接口,测试结果如下: