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

embedded/2024/11/22 0:22:02/

一、安装必要的库

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

  • 有网模式
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(主应用文件)
python">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-代码
python">import requestsdef app():response = requests.get("http://ip:5001/oracle")print(response.json())if __name__ == '__main__':app()

在这里插入图片描述

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

在这里插入图片描述


http://www.ppmy.cn/embedded/139468.html

相关文章

前端反向代理的配置和實現

反向代理是位於客戶端和服務器之間的一個中間層,它代表客戶端向伺服器發起請求,然後將伺服器的回應返回給客戶端。與傳統的正向代理不同,反向代理是由伺服器端配置的,客戶端通常不知道它的存在。在前端開發中,反向代理…

GitLab 部署和配置指南

GitLab 部署和配置指南 1. GitLab 容器配置概述 在部署 GitLab 时,可能涉及以下几部分内容: 内置 Nginx 的配置和调整。HTTPS 证书的申请、使用和续期。通过 FRP 映射内网服务到外部服务器。阿里云服务器的 Nginx 配置和反向代理。 本文将完整涵盖这…

如何使用ChatGPT写推荐信?

写一封推荐信可能是一项艰巨的任务,尤其是当您不确定要包含什么或如何表达您的想法时。值得庆幸的是,在 ChatGPT 等 AI 技术的帮助下,这个过程可以变得更加顺畅和高效。在本指南中,我们将探讨如何利用 ChatGPT 的力量用简单的英语制作引人注目的推荐信。 开始 在深入研究…

开源A书签管理工具:Hoarder

在日常浏览网页时,我们经常会遇到一些有价值的文章、工具或者资源。 虽然浏览器的书签功能可以帮助我们保存这些链接,但随着时间推移,书签往往会变得杂乱无章,想要找到特定内容时却无从下手。 普通的书签管理器又缺乏智能化功能…

计算机网络在线测试-概述

单项选择题 第1题 数据通信中,数据传输速率(比特率,bps)是指每秒钟发送的()。 二进制位数 (我的答案) 符号数 字节数 码元数 第2题 一座大楼内的一个计算机网络系统&#xf…

GCC是用什么语言编写的?编程语言出现之前,编译器或解释器用什么语言编写?GCC和G++有什么区别?

GCC是用什么语言编写的? 早期是C语言,后来改为C,源代码:https://github.com/gcc-mirror/gcc. GCC编译器从C语言转向C也经历过不顺,皓哥 GCC 用 C 来编译 | 酷 壳 - CoolShell 就有提到2012年GCC就转向用C编译器编译,…

什么是Hadoop

Hadoop 介绍 Hadoop 是由 Apache 开发的开源框架,用于处理分布式环境中的海量数据。Hadoop 使用 Java 编写,通过简单的编程模型允许在集群中进行大规模数据集的存储和计算。它具备高可靠性、容错性和扩展性。 分布式存储:Hadoop 支持跨集群…

借助OpenAI优化Selenium脚本:提高稳定性与可维护性

在自动化测试的工作中,Selenium是最常用的工具之一。尽管Selenium功能强大,但在实际应用中,随着测试脚本的增长和页面结构的变化,脚本可能会变得不稳定或难以维护。本文将展示如何使用OpenAI帮助自动化测试工程师优化现有的Seleni…