我正在尝试将AJAX与web2py语言一起使用,但我遇到了问题 我的代码是:
的javascript
$(document).ready(function(){
$(".className").click(function(){
jQuery.ajax({
type:'POST',
url:'getName',
data:{
itemName:'a'
},
timeout: 20000,
success: function(msg) {
alert(msg);
},
error: function(objAJAXRequest, strError){
alert( "Error:" + strError );
}
});
});
default.py
def getName():
itemName=request.vars.itemName
return "Name: " + itemName
问题是我想使用数据库中的数据,但是可以使用
{{for item in tableName:}}
var name={{=item.name}}
像这样?
我不确定如何在javascript中从数据库中提取数据。 你能帮我一下吗? 干杯
答案 0 :(得分:1)
简短的回答是,您无法使用web2py直接从javascript中提取数据。您必须使用web2py查询数据库,然后使用web2py将查询数据发送到javascript(或者更准确地说,因为您使用的是ajax,请使用jquery / javascript从web2py中提取查询数据)。确保您确实需要在客户端(javascript)端执行逻辑,因为最简单的方法是在web2py控制器中执行python中的所有逻辑。
但是,如果由于某种原因需要在客户端对数据执行逻辑,那么您就处于正确的轨道上。您最简单的方法是从web2py控制器中的db中获取所需的记录,然后将记录打包为web2py控制器中的json对象(“import simplejson”或者您可以使用标准库执行此操作最新版本的python),然后返回该json对象,使其可用于使用上面包含的ajax请求获取js。只有在这一点上,您才应该使用javascript循环浏览json对象以获取所需的数据。
也就是说,如果您只是想从数据库中的单个记录中获取字段,最简单的方法就是正确查询数据库以获取该记录,并将其返回到web2py控制器中得到你的ajax脚本。