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

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 json

app = Flask(__name__)

# ip:1521/etltdb

db_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_instant
  from 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()
    # 执行查询SQL
    cursor.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_result


if __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 requests

def app():
    response = requests.get("http://ip:5001/oracle")
    print(response.json())

if __name__ == '__main__':
    app()

在这里插入图片描述

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

在这里插入图片描述


http://www.kler.cn/a/403937.html

相关文章:

  • Elasticsearch-Elasticsearch-Rest-Client(三)
  • 【功能实现】bilibili顶部鼠标跟随效果怎么实现?
  • maven父子项目
  • 【PyTorch】Pytorch中torch.nn.Conv1d函数详解
  • MATLAB绘图基础11:3D图形绘制
  • 【降噪】自适应麦克风阵列系统
  • 基于SpringBoot+RabbitMQ完成应⽤通信
  • Java小白成长记(创作笔记二)
  • 蓝桥杯c++算法秒杀【6】之动态规划【上】(数字三角形、砝码称重(背包问题)、括号序列、组合数问题:::非常典型的必刷例题!!!)
  • 鸿蒙学习高效开发与测试-应用程序框架(3)
  • 【ArcGIS微课1000例】0132:从多个GIS视角认识与攀登珠穆朗玛峰
  • ShardingSphere——介绍
  • 学习笔记:使用Seurat进行细胞类型注释
  • PHP函数---function_exists()详解
  • 【华为云函数工作流】python的函数中如何获取请求链接中带的参数
  • Python Scikit-learn简介(二)
  • VSCode 间距太小
  • Java的正则表达式和爬虫
  • 卷积运算和卷积定理
  • 网络编程多线程服务器应用
  • RNN数学公式推导
  • 单例模式与QT中的C++实现
  • Layui Table 行号
  • uniapp将图片url转换成base64支持app和h5
  • Django项目 | 实现用户注册和登录时的手机号验证
  • OBOO鸥柏28.6寸液晶广告屏:创新技术引领智能显示新时代