django3.2 中使用cx_oracle的疑问

django3.2 中使用cx_oracle的疑问

问题描述:

创建了一个Django项目用来做几个NC报表,NC系统采用的oracle数据库,报表只是从库中查询数据在页面呈现,因此在采用了直接使用cx_oracle来处理数据查询,写好以下代码后

    start_date = req.GET['startdate']
    end_date = req.GET['enddate']
    pk_org = req.GET['orglist']
    print(start_date)
    print(end_date, pk_org)
    # 连接数据库
    conn = Cxo.connect('TEST/TEST@192.168.0.252:1521/orcl')
    # 建立游标
    cur = conn.cursor()
    # 执行查询
    date_now = datetime.datetime.now()
    aaa = []
    sql_str=get_sql(start_date, end_date, pk_org)
    # print(sql_str)
    yue_querylist = cur.execute(sql_str)

    data_ye = yue_querylist.fetchall()

调试代码发现yue_querylist值为空

特此将以上代码在命令行中执行发现从数据库能返回值给到yue_querylist。请教一个这是什么原因呢

django 的orm可以直接连接oracle数据库,不用自己写连接过程,建议直接用orm

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

尝试使用Django的orm来处理,settings.py设置了数据库连接

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.oracle',
        'NAME': 'orcl',
        'USER':'NCTEST',
        'PASSWORD':'NCTEST',
        'HOST':'192.168.0.252',
        'PORT':'1521'
    }
}

然后在views.py中引入 

from django.db import connection
并执行语句
def get_data(req):
    #从前端获取查询参数
    start_date = req.GET['startdate']
    end_date = req.GET['enddate']
    pk_org = req.GET['orglist']
    print(start_date)
    print(end_date, pk_org)
    # 建立游标
    cur = connection.cursor()
    #获取当前时间
    date_now = datetime.datetime.now()
    aaa = []

    #获取查询SQL语句
    sql_str=get_sql(start_date, end_date, pk_org)

    #执行查询
    cur.execute(sql_str)
    print(cur.execute(sql_str))

    #获取所有查询结果集
    data_ye = cur.fetchall()
    print(data_ye)

获取的结果是:

得到的结果集为空,请教一下怎么回事?