データベースにはcherrypyのスタンドアロンサーバー(cherrypy.quickstart())とsqlite3を使用しています。
チェリーピーを使用しているときに、データベースへの ajax/jquery 非同期呼び出しをどのように行うのか疑問に思っていましたか?
データベースにはcherrypyのスタンドアロンサーバー(cherrypy.quickstart())とsqlite3を使用しています。
チェリーピーを使用しているときに、データベースへの ajax/jquery 非同期呼び出しをどのように行うのか疑問に思っていましたか?
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 に変換することもできます。
他の Web サーバーを使用するのと同じ方法で、サーバー側アプリケーションによって処理される URL を呼び出すように JavaScript を取得します。