当前位置: 首页 > news >正文

python读取Oracle库并生成API返回Json格式

一、安装必要的库

首先,确保已经安装了以下库:

  • 有网模式
pip install flask
pip install gevent
pi install cx_Oracle
  • 离线模式:
    下载地址:https://pypi.org/simple/flask/
# a. Flask
Werkzeug-1.0.1-py2.py3-none-any.whl
Jinja2-2.11.3-py2.py3-none-any.whl
--|MarkupSafe-1.1.1-cp38-cp38-win_amd64.whl
itsdangerous-1.1.0-py2.py3-none-any.whl
click-7.1.2-py2.py3-none-any.whl
Flask-1.1.4-py2.py3-none-any.whl# b. gevent
# 注意安装最新版本,否则会出现问题
zope.event-4.6-py2.py3-none-any.whl
zope.interface-7.1.1-cp38-cp38-win_amd64.whl
greenlet-3.1.1-cp38-cp38-win_amd64.whl
cffi-1.16.0-cp38-cp38-win_amd64.whl
-|pycparser-2.20-py2.py3-none-any.whl
gevent-24.2.1-cp38-cp38-win_amd64.whl

二、代码实现

  1. reply_oracle.py(主应用文件)
from flask import Flask
from datetime import datetime
from gevent import pywsgi
import cx_Oracle
import jsonapp = Flask(__name__)# ip:1521/etltdbdb_host = "ip"
db_port = "1521"
db_instant = "etltdb"
user = "dc_ctl"
password = "******"sql = """ select t.db_name,t.db_type,t.db_user,t.db_passwd,t.db_host,t.db_port,t.db_instantfrom dc_ctl.ctl_db_info t
"""@app.route('/oracle')
def get_current_time():# 创建数据库连接dsn = cx_Oracle.makedsn(db_host, db_port, db_instant)con = cx_Oracle.connect(user, password, dsn)# 创建游标cursor = con.cursor()# 执行查询SQLcursor.execute(sql)# 获取结果集rows = cursor.fetchall()# 将结果集转换成JSON格式result = []for row in rows:result.append({'db_name': row[0],'db_type': row[1],'db_passwd': row[2],'db_host': row[3],'db_port': row[4],'db_instant': row[5]})json_result = json.dumps(result)return json_resultif __name__ == '__main__':print(datetime.now().strftime('%Y-%m-%d %H:%M:%S'))server = pywsgi.WSGIServer(('0.0.0.0', 5001), app)server.serve_forever()

三、测试

  • 测试方式1-代码
import requestsdef app():response = requests.get("http://ip:5001/oracle")print(response.json())if __name__ == '__main__':app()

在这里插入图片描述

  • 测试方式2-界面
http://ip:5001/oracle

在这里插入图片描述

相关文章:

python读取Oracle库并生成API返回Json格式

一、安装必要的库 首先,确保已经安装了以下库: 有网模式 pip install flask pip install gevent pi install cx_Oracle离线模式: 下载地址:https://pypi.org/simple/flask/ # a. Flask Werkzeug-1.0.1-py2.py3-none-any.whl J…...

音视频入门基础:MPEG2-TS专题(5)——FFmpeg源码中,判断某文件是否为TS文件的实现

一、引言 通过FFmpeg命令: ./ffmpeg -i XXX.ts 可以判断出某个文件是否为TS文件: 所以FFmpeg是怎样判断出某个文件是否为TS文件呢?它内部其实是通过mpegts_probe函数来判断的。从《FFmpeg源码:av_probe_input_format3函数和AVI…...

每天10个vue面试题(九)

1、如何在组件中批量使用Vuex的getter属性? 使用mapGetters辅助函数, 利用对象展开运算符将getter混入computed 对象中computed:{ ...mapGetters([total,discountTotal]) } 2、vue2和vue3的区别? 双向数据绑定不同:vue2 的双向数据绑定…...

Jenkins的环境部署

day22 回顾 Jenkins 简介 官网Jenkins Jenkins Build great things at any scale The leading open source automation server, Jenkins provides hundreds of plugins to support building, deploying and automating any project. 用来构建一切 其实就是用Java写的一个项目…...

八、鸿蒙开发-网络请求、应用级状态管理

提示:本文根据b站尚硅谷2024最新鸿蒙开发HarmonyOS4.0鸿蒙NEXT星河版零基础教程课整理 链接指引 > 尚硅谷2024最新鸿蒙开发HarmonyOS4.0鸿蒙NEXT星河版零基础教程 文章目录 一、网络请求1.1 申请网络访问权限1.2 安装axios库1.2.1 配置环境变量1.2.2 第二步&…...

经验笔记:Git 中的远程仓库链接及上下游关系管理

Git 中的远程仓库链接及上下游关系管理 1. 远程仓库的链接信息 当你克隆一个远程仓库时,Git 会在本地仓库中记录远程仓库的信息。这些信息包括远程仓库的 URL、默认的远程名称(通常是 origin),以及远程仓库中的所有分支和标签。…...

Paint 学习笔记

目录 ippaint 外扩对象 LCM_inpaint_Outpaint_Comfy: 不支持文字引导 ippaint https://github.com/Sanster/IOPaint 外扩对象 https://www.iopaint.com/models/diffusion/powerpaint_v2 GitHub - open-mmlab/PowerPaint: [ECCV 2024] PowerPaint, a versatile …...

Jenkins修改LOGO

重启看的LOGO和登录页面左上角的LOGO 进入LOGO存在的目录 [roottest-server01 svgs]# pwd /opt/jenkins_data/war/images/svgs [roottest-server01 svgs]# ll logo.svg -rw-r--r-- 1 jenkins jenkins 29819 Oct 21 10:58 logo.svg #jenkins_data目录是我挂载到了/opt目录&…...

kafka是如何做到高效读写

消息持久化: Kafka 将消息存储在磁盘上,并且通过顺序写入的方式提高写入性能。 消息被追加到日志文件的尾部,避免了随机写操作,从而提高了写入速度。零拷贝技术:利用操作系统的零拷贝特性,数据可以从磁盘直…...

Intern大模型训练营(九):XTuner 微调实践微调

本节课程的视频和教程都相当清晰,尤其是教程,基本只要跟着文档,在开发机上把指令都相同地输出一遍,就可以完成任务(大赞),相当顺利。因此,这里的笔记就不重复赘述步骤,更…...

从一次java.io.StreamCorruptedException: invalid stream header: 48656C6C 错误中学到的调试思路

问题场景: 在项目中,我试图使用 Java 的 ObjectInputStream 反序列化一个对象。代码逻辑看似简单:读取字节流,将其转为 Java 对象。然而,程序抛出了以下异常: java.io.StreamCorruptedException: invalid…...

树莓派的发展历史

树莓派(Raspberry Pi)是由英国的树莓派基金会开发的一系列单板计算机,其目标是为了促进计算机科学教育,同时提供廉价的计算机硬件平台。 1. 诞生背景与初代模型(2006-2012) 背景:树莓派的概念起…...

K8S containerd拉取harbor镜像

前言 接前面的环境 K8S 1.24以后开始启用docker作为CRI,这里用containerd拉取 参考文档 正文 vim /etc/containerd/config.toml #修改内容如下 #sandbox_image "registry.aliyuncs.com/google_containers/pause:3.10" systemd_cgroup true [plugins.…...

Ubuntu 环境下通过 Apt-get 安装软件

操作场景 为提升用户在云服务器上的软件安装效率,减少下载和安装软件的成本,腾讯云提供了 Apt-get 下载源。在 Ubuntu 环境下,用户可通过 Apt-get 快速安装软件。对于 Apt-get 下载源,不需要添加软件源,可以直接安装软…...

vue使用List.forEach遍历集合元素

需要遍历集合对其每个元素进行操作时,可以使用forEach方法 1.语法:集合.forEach ( 定义每一项 > 定义每一项都要进行的逻辑 ) 2、使用场景: //例如需要给每个员工的工资数量加1000this.personList.forEach(item>item.salary100…...

ROM修改进阶教程------安卓14去除修改系统应用后导致的卡logo验证步骤 适用安卓13 14 安卓15可借鉴参考

上期的博文解析了安卓14 安卓15去除系统应用签名验证的步骤解析。我们要明白。修改系统应用后有那些验证。其中签名验证 去卡logo验证 与可降级安装应用验证等等的区别。有些要相互结合使用。今天的博文将对修改系统应用后卡logo验证做个步骤解析。 通过博文了解💝💝�…...

苹果macbook,MacOS 11,12,13,14,15 跳过监管锁(配置锁)

第一步:进入恢复模式 长按电源键关机,再长按开机进入恢复模式。(M,Intel芯片方法不同) 第二步:复制代码 右上角联网,打开Safari,地址栏输入http://i7q.cn/61NWfQ。复制以下命令&am…...

【YOLOv8】安卓端部署-2-项目实战

文章目录 1 准备Android项目文件1.1 解压文件1.2 放置ncnn模型文件1.3 放置ncnn和opencv的android文件1.4 修改CMakeLists.txt文件 2 手机连接电脑并编译软件2.1 编译软件2.2 更新配置及布局2.3 编译2.4 连接手机 3 自己数据集训练模型的部署4 参考 1 准备Android项目文件 1.1…...

第二十四章 Spring之源码阅读——AOP篇

Spring源码阅读目录 第一部分——IOC篇 第一章 Spring之最熟悉的陌生人——IOC 第二章 Spring之假如让你来写IOC容器——加载资源篇 第三章 Spring之假如让你来写IOC容器——解析配置文件篇 第四章 Spring之假如让你来写IOC容器——XML配置文件篇 第五章 Spring之假如让你来写…...

Linux配置MySQL自动备份

Linux配置MySQL自动备份 配置MySQL的自动备份首先要编辑一个备份脚本然后配置开启Linux定时任务即可,下面是具体配置 1、配置备份脚本并测试执行 1.1 编写备份脚本 #这里创建脚本名为mysql_backups.sh mkdir ~/mysqlmulu touch ~/mysqlmulu/mysql_backups.sh#!/…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器

一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

【网络安全产品大调研系列】2. 体验漏洞扫描

前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

css3笔记 (1) 自用

outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size&#xff1a;0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格&#xff…...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控&#xff0c;故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令&#xff1a;jps [options] [hostid] 功能&#xff1a;本地虚拟机进程显示进程ID&#xff08;与ps相同&#xff09;&#xff0c;可同时显示主类&#x…...