1.运行自定义sql
[root@yyjk templates]# cat displayesbquery_1.html
<html>
<head>
<title>运维平台</title>
<link rel="stylesheet" type="text/css" href="/static/Css/Monitor/displayesbquery_1.css">
<link rel="stylesheet" type="text/css" href="/static/Css/Public/header.css">
<link rel="stylesheet" type="text/css" href="/static/Css/Public/menu.css">
</head>
<body>
<include file="Public:header"/>
<div class="content">
<include file="Public:menu"/>
<div class="con fl">
<div id="condition">
<label class="condition">数据库服务名</label><input type="text" name="dbservice" class="equipment_sz1">
<label class="condition">数据库IP</label><input type="text" name="dbip" class="equipment_sz2">
<label class="condition">数据库用户名</label><input type="text" name="dbuser" class="equipment_sz3">
<label class="condition">数据库密码</label><input type="text" name="dbpass" class="equipment_sz4">
<br />
<br />
<label class="condition">自定义SQL</label><textarea id="customsql" class="equipment_sz5"></textarea>
<!--<label class="condition">保存的文件名</label><input type="text" name="exportname" class="equipment_sz6">-->
<br />
<br />
<input type="submit" value="导出" class="equipment_search_btn es_1">
<!--<input type="submit" value="组查找" class="equipment_search_btn es_2">-->
</div>
<table class="gridtable">
<tr>
<th>"导出成功后,请通过下面的url下载文件"</th>
<th>"select 'aa' from dual
union all
select 'bb' from dual
union all
select 'cc' from dual"</th>
</tr>
</table>
</div>
</div>
</body>
<script type="text/javascript" src="/static/Js/jquery-2.2.2.min.js"></script>
<script type="text/javascript" src="/static/Js/Monitor/displayesbquery_1.js"></script>
<script type="text/javascript" src="/static/Js/Public/ajax.js"></script>
</html>
2.
select *
from dba_users
where username='TEST'
union all
select * from dba_users
where username='TLCBUSER'
union all
select * from dba_users
where username='SYS'
[('TEST', 85, None, 'OPEN', None, None, 'USERS', 'TEMP', datetime.datetime(2017, 6, 21, 14, 17, 2),
'DEFAULT', 'DEFAULT_CONSUMER_GROUP', None, '10G 11G ', 'N', 'PASSWORD'),
('TLCBUSER', 84, None, 'OPEN', None, None, 'USERS', 'TEMP', datetime.datetime(2017, 4, 12, 10, 24, 4), 'DEFAULT', 'DEFAULT_CONSUMER_GROUP', None, '10G 11G ', 'N', 'PASSWORD'),
('SYS', 0, None, 'OPEN', None, None, 'SYSTEM', 'TEMP', datetime.datetime(2013, 8, 24, 11, 37, 40), 'DEFAULT', 'SYS_GROUP', None, '10G 11G ', 'N', 'PASSWORD')]
[root@yyjk Monitor]# cat displayquery_1.js
$(function(){
var _dbservice= $("input[name='dbservice']");
var _dbip= $("input[name='dbip']");
var _dbuser= $("input[name='dbuser']");
var _dbpass= $("input[name='dbpass']");
var _customsql= $("#customsql");
var _ip_bt = $(".content .con #condition .es_1");
console.log(_customsql);
_ip_bt.on('click',function(){
var data={};
data.dbservice=_dbservice.val();
data.dbip=_dbip.val();
data.dbuser=_dbuser.val();
data.dbpass=_dbpass.val();
data.customsql=_customsql.val();
var successfn = function(jdata){
var _HTML="<tr><th>数据 </th></tr>";
$(".gridtable").empty();
/*var _HTML="<tr><th>数据 </th></tr>";*/
for(var L1=0;L1<jdata.length;L1++){
var newArr = jdata[L1];
console.log(newArr);
for (var L2=0;L2<newArr.length;L2++){
if ((L2==0) && (_HTML=='<tr><th>数据 </th></tr>')){
_HTML=_HTML+ "<tr>";
_HTML=_HTML+"<td>"+newArr[L2]+"</td>";
}
else if (L2 == newArr.length - 1) {
_HTML = _HTML + "<td>" + newArr[L2] + "</td></tr>"
}
else {
_HTML = _HTML + "<td>" + newArr[L2] + "</td>";
}
console.log('aaa'+_HTML);
}
};
$(".gridtable").html(_HTML);
};
var errorfn = function(){
alert("数据获取出错");
};
$.ajax({
type: "get",
data: data,
url: "/api/query_db_1",
dataType: "json",
success: function(d){
successfn(d);
},
error: function(e){
errorfn(e);
}
});
});
}
)
3.
def query_db_1(req):
class CJsonEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, datetime.datetime):
return obj.strftime('%Y-%m-%d %H:%M:%S')
elif isinstance(obj, date):
return obj.strftime("%Y-%m-%d")
else:
return json.JSONEncoder.default(self, obj)
print '--------------------';
print req.get_full_path();
print '--------------------';
print req.GET['dbservice']
dbservice= req.GET['dbservice']
print req.GET['dbip']
dbip= req.GET['dbip']
print req.GET['dbuser']
dbuser= req.GET['dbuser']
print req.GET['dbpass']
dbpass= req.GET['dbpass']
print req.GET['customsql']
customsql= req.GET['customsql']
os.environ['NLS_LANG'] = "SIMPLIFIED CHINESE_CHINA.AL32UTF8"
conn = cx_Oracle.connect(dbuser,dbpass,dbip+'/'+dbservice)
cursor = conn.cursor()
a = cursor.execute(customsql)
d={}
info = cursor.fetchall()
print info
print type(info)
return HttpResponse(json.dumps(info, cls=CJsonEncoder))