سؤال

أنا أستخدم خادم Cherrypy's Standalone (Cherrypy.quickstart ()) و SQLite3 لقاعدة بيانات.

كنت أتساءل كيف سيقوم المرء بإجراء مكالمات AJAX / JQUERY غير المتزامنة إلى قاعدة البيانات أثناء استخدام Cherrypy؟

هل كانت مفيدة؟

المحلول

بنفس الطريقة التي ستقوم بها باستخدام أي خادم خادم آخر - عن طريق الحصول على جافا سكريبت الخاص بك لاستدعاء عنوان URL الذي يتم التعامل معه بواسطة تطبيق جانب الخادم.

نصائح أخرى

إذا كنت تستخدم 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.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top