1

我正在使用cherrypy 的独立服务器(cherrypy.quickstart())和sqlite3 作为数据库。

我想知道在使用cherrypy时如何对数据库进行ajax/jquery异步调用?

4

2 回答 2

9

如果您使用的是 CherryPy 3.2.0-rc1,那么您可以使用装饰器@json_in@json_out参见此处)。

因此:

@cherrypy.expose
@tools.json_in(on = True)
@tools.json_out(on = True)
def json_test(self):
    return { 'message':'Hello, world!' }

将 JSON 返回给浏览器,例如

$(document).ready(function() {
    $.getJSON('/json_test', function(data) {
        alert(data.message);
    }
}

您需要记住,CherryPy 期望 JSON 帖子的内容类型为application/json,要使用 jQuery 来做到这一点,要么使用$.ajax并手动设置,要么contentType您可以使用以下便利函数:

$.postJSON = function(url, data, callback) {
    $.ajaxSetup({ scriptCharset:"utf-8", 
                    contentType:"application/json; charset=utf-8" });
    $.post(url, $.toJSON(data), callback, "json");
}

此函数使用jquery-json插件,但您可以使用不同的方法转换为 JSON。

于 2010-01-11T08:42:11.687 回答
2

与您使用任何其他网络服务器执行它们的方式相同 - 通过让您的 javascript 调用由服务器端应用程序处理的 URL。

于 2010-01-06T18:47:52.877 回答