进行 AJAX 调用以将下拉值传递给 python 脚本
Posted
技术标签:
【中文标题】进行 AJAX 调用以将下拉值传递给 python 脚本【英文标题】:Make an AJAX call to pass drop down value to the python script 【发布时间】:2015-11-30 04:04:54 【问题描述】:我想从包含数据库名称的下拉列表中传递选定的值,并将其传递给后台的 python 脚本,该脚本连接到传递的数据库名称。 以下是我写的ajax代码
<script type="text/javascript">
$(document).ready(function()
$("button").click(function()
$.ajax(
url : "/form_submit",
data : $('#databases').val(),
type : 'POST',
success : alert("Hi dear count " + $('#databases').val())
);
);
);
</script>
“数据库”是 html 中选择标记的 id。我正在写数据:
$('#databases').val()
将数据传递给python代码。
以下是应该接受传递值的 python 代码。如果我直接从控制台运行下面的代码,那么它会以 json 格式返回结果,但间接运行它并没有成功
@app.route("/form_submit/", methods=['GET','POST'])
def connect():
import json
dtb = request.select['value']
db = mysqldb.connect("localhost","root","",dtb)
cursor = db.cursor()
cursor.execute("SELECT * FROM REPORT_SUITE")
results = cursor.fetchall()
json_return_value =[]
for result in results:
table_data = 'REPORTSUITE_ID' : result[0], 'REPORTSUITE_NAME' : result[1], 'STAGING_DATABASE' : result[2], 'DWH_DATABASE' : result[3], 'TRANS_TABLE' : result[4]
json_return_value.append(table_data)
print ("hi")
print json.dumps(json_return_value)
return json.dumps(json_return_value)
我已将变量声明为dtb = request.select['value']
,它应该接受通过 AJAX 调用传递的数据库名称。
此外,我应该能够在我的网络浏览器中看到返回的 JSON 格式的数据。
我环顾四周并应用了许多建议的解决方案,但我仍然无法确定如何传递和捕获传递的值。
【问题讨论】:
欢迎来到 ***。 “间接运行它没有成功”到底是什么意思?有错误信息吗?发送 AJAX 请求时,您是否在控制台中看到print("hi")
结果?请查看how to ask a good question 以获得一些指导。
我正在使用 python 烧瓶创建一个 Web 应用程序,所以当我单击 html 页面上的按钮时,它应该转到 /form_submit/,接受传递的值,即数据库名称,连接到它然后返回json格式的数据显示在网页上,不打印'hi'。我得到的错误消息是“请求”对象没有属性“选择”。所以它无法识别我用于下拉的
您是否使用浏览器的开发者工具来确定传递给flask和/或调试javascript的请求数据?
我没有这样做,但我可以确定的是我可能没有正确发送和接收值。
我已经解决了这个问题。我做了以下更改 var data1 = new Object(); data1.name = $('#databases').val(); $.ajax( url : "form_submit", type : 'POST', data : data1 并在 python dtb = request.form['name'] 中接受如下
【参考方案1】:
对于POST
请求,传递的值可以是obtained by
request.form['value']
【讨论】:
我找到了这个解决方法并应用了它,但它说全局名称'form'没有定义。我认为我编写的调用python函数并将值传递给它的代码不正确,并且python程序(dtb)中应该接受该值的变量也不正确。请检查我上面粘贴的代码。以上是关于进行 AJAX 调用以将下拉值传递给 python 脚本的主要内容,如果未能解决你的问题,请参考以下文章
是否可以使用 jQuery 加密 AJAX 调用以进行身份验证?