javascript - Web2py - 无法连接 'str' 和 'NoneType' 对象

标签 javascript python ajax json web2py

我在让这个 ajax 调用工作时遇到一些麻烦。 ajax 函数将一个简单的变量传递给我的 python Controller , Controller 返回查询结果。我正在使用 Web2py 框架。我收到错误:无法连接“str”和“NoneType”对象。这是代码:

Ajax 调用:

<script>
function TestVolumen() {
    var selectVal = $('#zonas :selected').val();    
    $.ajax({
    data: selectVal ,
    url: '/shell/default/ajax2',
    type: 'POST',
    cache: false,
    dataType: 'string',
    success: function(request) {
    //console.log(request[0]);
    //console.log(request[0].zona);
    selectVal = $('#zonas :selected').val();

        for (x=0;x<request.length;x++){
            if (request[x].zona == selectVal ) {
            //alert(request[x].promedio);
            //alert(request[x].zona);
            $('div#tabs .vol').html(request[x].promedio.toFixed(4));

            }
        }

        }
    });
}
</script>

这是 python Controller :

def ajax2():
import gluon.contrib.simplejson
zona = request.vars

queryvol = "select sells.product1 FROM site inner join zona on site.zone_number = zona.id inner join sells on sells.site = site.id WHERE zona.id =" + zona +" ;', as_dict = True"
vol=db.executesql(queryvol)

return gluon.contrib.simplejson.dumps(vol)

感谢您的帮助!我真的很感激。

最佳答案

您看到的 Python 错误意味着 zona 的值只是 None。我猜这是因为您错误地发出了 AJAX 请求。发出请求时,您应该以 { 'variable_name' : value } 格式定义数据。对于服务器端:请注意 request.varsgluon.storage.Storage类似字典的对象。

因此,要解决此问题 - 修改您的 AJAX 请求,删除 dataType: 'string', 并将 data 设置为 { 'zona' : selectedVal }。其次 - 使用 request.vars['zona'] 获取服务器端的值。第三 - 在进一步编写 Python 代码之前,请阅读内存 PEP8用心!

关于javascript - Web2py - 无法连接 'str' 和 'NoneType' 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12963544/

相关文章:

javascript - 如何使用React Native减少从react-native-image-picker获取的base64图像的大小以将其保存在firebase中

javascript - 在 mouseenter 和 mouseleave 上暂停并重新启动 CSS 过渡

python - WindowsError : [Error 123] The filename, 目录名或卷标语法不正确: '\\\\buildloc\\kernel\\*.patch/*.*'

javascript - then/promises 不能在 for 循环后使用变量

javascript - 无法在 javascript 中访问全局变量?

python - 意外的性能下降

python - 使用 cPickle 的问题

javascript - 滚动时如何自动加载数据

JavaScript Bookmarklet 发送 AJAX 请求......有时?

javascript - 从 onclick 调用函数,为什么我的参数评估为 true?