2014-10-22 8 views
26

मेरे पास एक तरीका है जो मेरे बेस टेम्पलेट (वैश्विक फ़ूटर के लिए सामग्री) में आवश्यक डेटा देता है।फ्लास्क + जिन्जा: बेस टेम्पलेट/सभी टेम्पलेट्स को डेटा पास करें

या तो (1) बेस टेम्पलेट (जो अन्य टेम्पलेट्स का विस्तार करता है) में एक चर को पास करता है या (2) render_template पर कॉल में स्पष्ट रूप से इसे जोड़ने के बिना वैश्विक रूप से सभी टेम्पलेट्स में एक चर पारित करता है?

+0

सुनिश्चित नहीं है कि यह सबसे अच्छा समाधान है, लेकिन app.context_processor मदद कर सकता है। http://flask.pocoo.org/docs/0.10/templating/#context-processors – Gohn67

+0

@ गोहन 67 जो मुझे चाहिए वही है। क्या आप एक उत्तर के रूप में जोड़ सकते हैं और मैं स्वीकार करूंगा? – okoboko

उत्तर

28

कुप्पी डॉक्स से: http://flask.pocoo.org/docs/0.10/templating/#context-processors

एक टेम्पलेट के संदर्भ में स्वचालित रूप से नए चर इंजेक्षन करने के लिए, संदर्भ प्रोसेसर बोतल में मौजूद हैं। संदर्भ प्रोसेसर टेम्पलेट से पहले चलाए जाते हैं और टेम्पलेट संदर्भ में नए मानों को इंजेक्ट करने की क्षमता रखते हैं। एक संदर्भ प्रोसेसर एक ऐसा फ़ंक्शन है जो शब्दकोश देता है। कुंजी और इस शब्दकोश के मूल्यों फिर टेम्पलेट संदर्भ के साथ विलय कर रहे हैं, अनुप्रयोग में सभी टेम्पलेट्स के लिए:

डॉक्स से उदाहरण:

@app.context_processor 
def inject_user(): 
    return dict(user=g.user) 

नोट इस उदाहरण g चर, का उपयोग करता है जो टेम्पलेट्स में पहले से ही सुलभ है।

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