我有一个python脚本,我从中传递一个参数来在Oracle数据库中执行查询
prov.py
#!/usr/local/bin/python2.7
import sys
import argparse
import cx_Oracle
import json
import cgi
import cgitb
cgitb.enable()
lst_proveedores=[{}]
conn_str = 'user/pass@DATABASE'
conn = cx_Oracle.connect(conn_str)
c = conn.cursor()
qstr = qstr = """ select id_proveedor, nombre, tipo from mpc_proveedores where tipo = '%s' """ %sys.argv[1]
c.execute(qstr)
for row in c:
record1 = {"id":row[0], "nombre":row[1],"tipo":row[2],"tipo":row[2]}
lst_proveedores.append(record1)
json_string = json.dumps(lst_proveedores)
print json_string
conn.close()
我需要在HTML页面中显示数据。
的index.html
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function ajax_get_json(){
var results = document.getElementById("results");
var hr = new XMLHttpRequest();
hr.open("GET", "prov.py", true);
hr.responseType = "JSON";
hr.setRequestHeader("Content-Type", "application/json", true);
hr.onreadystatechange = function() {
if(hr.readyState == 4 && hr.status == 200) {
var data = JSON.parse(hr.responseText);
results.innerHTML = "";
for(var obj in data){
results.innerHTML +=
"<tr><td>"+data[obj].id+"</td><td>"+data[obj].nombre+"</td><td>" +data[obj].tipo+"</td></tr>";
}
}
}
hr.send(null);
results.innerHTML = "requesting...";
}
</script>
</head>
<body>
<div class="container">
<div class+"row">
<table id="results" class="table table-bordered table-striped table-hover">
<tr>
<td>Id Proveedor</td>
<td>Nombre</td>
<td>Tipo</td>
</tr>
<script type="text/javascript">ajax_get_json();</script>
</table>
</div>
</div>
</body>
</html>
如何从按钮执行脚本,如何将输入文本中的值传递给javascript?
另外,我知道我的javascript设计不合理。有什么建议吗?
答案 0 :(得分:0)
要从Apache运行Python代码,您需要使用适当的接口。有许多可能性,但 CGI 或 mod_wsgi 是很受欢迎的选择。 Python docs有很多关于如何设置它的有用信息。
答案 1 :(得分:0)
我认为你真正想要的是web framework。
这将提供一种结构化的方法,准确地说明你正在尝试做的事情。
django非常棒且非常受欢迎。金字塔和烧瓶也很受欢迎。我对Flask有很多经验并且强烈推荐。