मेरे पास वर्तमान में एक फ्लास्क वेब सर्वर है जो अंतर्निहित अनुरोध ऑब्जेक्ट का उपयोग कर JSON API से डेटा खींचता है।क्या फ्लास्क, सर्वर-साइड में एक प्रस्तुत टेम्पलेट को गतिशील रूप से अपडेट करना संभव है?
उदाहरण के लिए:
def get_data():
response = requests.get("http://myhost/jsonapi")
...
return response
@main.route("/", methods=["GET"])
def index():
return render_template("index.html", response=response)
यहां मुद्दा यह है कि स्वाभाविक रूप से GET पद्धति केवल एक बार चलाया जाता है है, पहली बार get_data कहा जाता है। डेटा रीफ्रेश करने के लिए, मुझे फ्लास्क wsgi सर्वर को रोकना और पुनरारंभ करना होगा। मैंने थोड़ी देर में कोड के विभिन्न हिस्सों को सही/नींद लूप में लपेटने की कोशिश की है, लेकिन यह पेज लोड करने से werkzeug को रोकता है।
पृष्ठ को फिर से लोड किए बिना सर्वर को पुनरारंभ किए बिना डेटा को गतिशील रूप से प्राप्त करने के लिए सबसे पाइथोनिक तरीका क्या है?
यदि आप मार्ग के लिए तैयार अपने 'get_data()' एक यूआरएल के लिए विधि, तो आप सिर्फ इस्तेमाल कर सकते हैं कर रहे हैं [AJAX] (http://api.jquery.com/jquery.ajax/) इसे कहते हैं ग्राहक से और परिणामों के साथ पृष्ठ अद्यतन करें। – Celeo
@Celeo यह एक तरीका है। लेकिन कहें कि मेरे पास एक अलग फ़ाइल में 'get_data() 'है और मैं कोई और रास्ता नहीं जोड़ना चाहता हूं? मेरा सवाल यह बताता है कि यह फ्लास्क या फ्लास्क एक्सटेंशन का उपयोग करके पूरा किया जा सकता है या नहीं। – damienstanton
सर्वर के पहले से ही टेम्पलेट प्रस्तुत करने के बाद आपको सर्वर से डेटा प्राप्त करने के लिए कुछ रास्ता तय करना होगा। यदि आप क्लाइंट-इंटरैक्शन के बिना पृष्ठभूमि में डेटा को अपडेट करना चाहते हैं, तो आप [सेलेरी] (http://www.celeryproject.org/) को आजमा सकते हैं। – Celeo