【发布时间】:2010-01-06 17:57:47
【问题描述】:
我正在使用cherrypy 的独立服务器 (cherrypy.quickstart()) 和 sqlite3 作为数据库。
我想知道如何在使用cherrypy 的同时对数据库进行ajax/jquery 异步调用?
【问题讨论】:
标签: jquery python ajax asynchronous cherrypy
我正在使用cherrypy 的独立服务器 (cherrypy.quickstart()) 和 sqlite3 作为数据库。
我想知道如何在使用cherrypy 的同时对数据库进行ajax/jquery 异步调用?
【问题讨论】:
标签: jquery python ajax asynchronous cherrypy
如果您使用的是 CherryPy 3.2.0-rc1,那么您可以使用装饰器 @json_in 和 @json_out (see here)。
因此:
@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。
【讨论】:
from cherrypi import tools?
与使用任何其他网络服务器的方法相同 - 通过让您的 javascript 调用由服务器端应用程序处理的 URL。
【讨论】: