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)
获取的结果是:
得到的结果集为空,请教一下怎么回事?