是否可以在javascript文件(.js)中使用web2py语言?

时间:2011-10-17 13:22:38

标签: python web2py

我正在尝试将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中从数据库中提取数据。 你能帮我一下吗? 干杯

1 个答案:

答案 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脚本。