jinja2 - How to get a list of current variables from Jinja 2 template? -


अगर मैं इस तरह के एक जिन्जा 2 टेम्पलेट वापस करता हूँ: return render_response ('home.htm', ** context) < / Code>

फिर टेम्पलेट में से संदर्भ में वेरिएबल्स की सूची कैसे प्राप्त करें?

तकनीकी रूप से, क्योंकि प्रसंग नामित शब्दकोश के रूप में पारित नहीं किया गया है, एक टेम्पलेट के अंदर से संदर्भ चर की एक सूची तैयार करने के लिए थोड़ा काम करना आवश्यक है। हालांकि यह संभव है।

  1. जिनजा 2 को वापस करने के लिए परिभाषित करें। वस्तु वस्तु, जो मूल रूप से वैश्विक चर / फ़ंक्शन का शब्दकोश है

  2. वैश्विक नाम स्थान में उस फ़ंक्शन को उपलब्ध कराएं; यानी एक जीनजा 2. पर्यावरण या जीनजा 2. टेम्पलेट ग्लोबल शब्दकोश

  3. वैकल्पिक रूप से, संदर्भ से ऑब्जेक्ट फ़िल्टर करें; उदाहरण के लिए, जिन्ना का डिफ़ॉल्ट वैश्विक सहायक कार्यों (श्रेणी, योजक, आदि) को छोड़ने के लिए कोलाबल () का उपयोग करें। यह संदर्भ समारोह या टेम्पलेट में किया जा सकता है; जहां भी यह सबसे अधिक समझ में आता है।

उदाहरण:

  & gt; & gt; & gt; आयात जीनजा 2 & gt; & gt; & gt; & Gt; & gt; & gt; @ Jinja2.contextfunction ... def get_context (c): ... वापसी सी ... & gt; & gt; & gt; {{मूल्य}}} {{key}}: {{value}} {...} } ... {% endif%} ... {% endfor%} ... "" "& gt; & gt; & gt; & Gt; & gt; & gt; टेम्पलेट = जीनजा 2। टेम्पलेट (टीएमपीएल) & gt; & gt; & gt; Template.globals ['संदर्भ'] = get_context & gt; & gt; & gt; Template.globals ['कॉल करने योग्य'] = कॉल करने योग्य & gt; & gt; & gt; & Gt; & gt; & gt; संदर्भ = {'ए': 1, 'बी': 2, 'सी': 3}> & gt; & gt; & Gt; & gt; & gt; प्रिंट (टेम्पलेट। रेंडर (** संदर्भ)) a: 1 c: 3 b: 2  

[वैकल्पिक रूप से, render_response के साथ ('home .htm ', संदर्भ = संदर्भ) अन्य समाधान काम करने के लिए।]


Comments

Popular posts from this blog

google indexing -

wpf - Custom Message Box Advice -

Eclipse CDT variable colors in editor -