2013-03-21 7 views
8

में डेटा पास करना मुझे पता है कि पाइथन से जावास्क्रिप्ट में जेनिजा टेम्पलेट के साथ डेटा कैसे पास किया जाए, लेकिन मैं एक जावास्क्रिप्ट चर को पायथन में पास करना चाहता हूं। मैं पेज को पुनः लोड किए बिना इसे करना चाहता हूं। क्या यह संभव है?जावास्क्रिप्ट से डेटा को फ्लास्क

+5

एक ajax अनुरोध का उपयोग करें:

import json @main.route('/check_selected', methods=['GET','POST']) def check_selected(): global selected post = request.args.get('post', 0, type=int) return json.dumps({'selected post': str(post)}); 

जैसा कि बताया जा here, हम आदेश jQuery लोड करने के लिए Google AJAX API शामिल करने की ज़रूरत? – monkut

उत्तर

4

हाँ, जैसे मोनकुट ने कहा - मुझे विश्वास है कि आप JSON और जावास्क्रिप्ट/jQuery का उपयोग करना चाहते हैं।

यह क्लाइंट से सर्वर पर संचार करने की अनुमति देगा और फिर से वापस आने देगा।

सर्वाधिक उपयुक्त उदाहरण मैंने पाया बोतल के टुकड़े/पैटर्न में किया गया था: http://flask.pocoo.org/docs/patterns/jquery/

-1

आपके विचार कोड से की तरह

<script type="text/javascript"> 
    var data = {{ jsonData }}; 
</script> 
+1

ओपी ने विशेष रूप से उल्लेख किया कि वह पहले से ही जानता था कि यह कैसे करें और दूसरी दिशा में जाना चाहता था। – pydsigner

2

कुछ JSON स्ट्रिंग बनाएं कहते हैं, jsonData और अपने जिंजा टेम्पलेट में, लिखना मैंने अपनी परियोजना में एक समान प्रकार का काम किया और यहां मेरा कोड साझा करना चाहता हूं। मुझे यह पता लगाना होगा कि कौन सी पोस्ट चुनी गई है और मैं चयनित पोस्ट को सर्वर तरफ ग्लोबल वैरिएबल के रूप में सेट कर रहा था, ताकि मैं इसे बाद की तुलना के लिए उपयोग कर सकूं। इस प्रकार मैं अपनी चयनित पोस्ट जावास्क्रिप्ट में पास करता हूं।

<a class="label label-primary" onclick="myFunction({{very.id}})" > Compare</a> 

अब जावास्क्रिप्ट से फ्लास्क तक।

function myFunction(x) { 
     $.getJSON($SCRIPT_ROOT + '/check_selected', { 
     post: x 
     }, function(data) { 
      var response = data.result; 
      console.log(response); 
      } 
     }); 
} 

इस प्रकार मैं जेएसओएन का उपयोग कर फ्लास्क से परिणाम कैसे लौटाता हूं।

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
<script>window.jQuery || document.write('<script src="{{ 
    url_for('static', filename='jquery.js') }}">\x3C/script>')</script> 
+0

उपयोगकर्ता क्लिक बटन के बजाय पेज लोड पर फ़ंक्शन कैसे कॉल करेंगे और फिर जावास्क्रिप्ट से फ्लास्क तक डेटा पास करेंगे –

संबंधित मुद्दे