هل هناك طريقة جيدة لإنشاء رمز عميل JavaScript تلقائيًا من Python جانب الخادم

StackOverflow https://stackoverflow.com/questions/2541954

  •  23-09-2019
  •  | 
  •  

سؤال

أريد أن أكون قادرًا على:

  • اكتب بعض الوظائف في Python (مع الحد الأدنى لمقدار بيانات التعريف الإضافية)
  • تحويل هذه الوظائف إلى خدمة ويب (مع الحد الأدنى من الجهد / لوحة المرجل)
  • قم بإنشاء بعض وظائف / كائنات JavaScript تلقائيًا لـ RPC (هذا من شأنه أن يمنعني من القيام بأكبر عدد ممكن من الأشياء الغبية مثل أسماء طرق الخاطئة ، ونسيان أسماء الأساليب ، ويمرر العدد الخطأ من الوسائط)

مثال

بيثون:

def hello_world():
    return "Hello world"

JavaScript:

...
<!-- This file is automatically generated (either dynamically or statically) -->
<script src="http://myurl.com/webservice/client_side_javascript"> </script> 
...
<script>
$('#button').click(function () {
     hello_world(function (data){ $('#label').text(data)))
}
</script>

أظهر لي القليل من الأبحاث بعض الأساليب التي تقترب من هذا:

  • الجيل التلقائي لخدمات JSON -RPC من وظائف مع رمز لوحة غلاية صغير في Python ثم استخدام JQuery و JSON لإجراء المكالمات (لا يزال من السهل ارتكاب أخطاء مع أسماء الأسلوب - لا تزال بحاجة إلى أن تكون على دراية بعناوين URL اكتب هذه المكالمات بنفسك في قذيفة Firebug)

  • باستخدام مكتبة مثل Soaplib لإنشاء WSDL من Python (عن طريق إضافة معلومات نوع وفيرة). ثم قم بتحويل هذا بطريقة ما إلى JavaScript (لست متأكدًا مما إذا كانت هناك مكتبة للقيام بذلك)

ولكن هل هناك أي طرق أقرب إلى ما أريد؟

لا يوجد حل صحيح

نصائح أخرى

نعم هناك ، هناك لباس نوم. بعض الناس فاتورة هذا على أنه "GWT لبيثون "

يبدو أن استخدام عميل JavaScript XML RPC (يوجد مكون إضافي jQuery لهذا) مع خادم XML RPC هو وسيلة جيدة للذهاب.

سيقوم المكون الإضافي JQuery بإدخال خدمة RPC الخاصة بك وسيجعل أسماء الأسلوب من المستحيل كتابة اسم استدعاء الطريقة دون الحصول على الإنذار المبكر. ومع ذلك ، فإنه لن يختبر عدد الوسائط التي تمررها ، أو نوعها.

لا يبدو أن هناك نفس الدعم للتأمل على JSON RPC (أو بالأحرى لا يبدو أن هناك معيارًا ثابتًا). يمكن أيضًا استخدام هذا النهج مع Django.

لقد وضعت بعضًا من رمز المثال وقمت بتحميله هنا (آمل ألا يعتبر الارتباط بمشاركات المدونة الخاصة بهما شكلًا فظيعًا - يبدو أن البحث الموجز عن الإنترنت لا يشير إلى أنه كان) ...

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