Python Academy · पाठ

Jinja2 के साथ टेम्पलेट

गतिशील HTML रेंडर करें

पाठ 2, कुल 4 में से13 चरण

Jinja2 के साथ टेम्पलेट, CoddyKit पर Python Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Python Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Python Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

टेम्पलेट क्यों

Python स्ट्रिंग से HTML लौटाना जल्दी ही उलझाऊ हो जाता है। टेम्पलेट आपके HTML को अलग फ़ाइलों में रखते हैं और रेंडर करने के समय उनमें डेटा भरते हैं। Flask Jinja2 इंजन का उपयोग करता है।

from flask import Flask, render_template
app = Flask(__name__)
# render_template loads a file from the templates/ folder
print('Jinja2 powers Flask templates')

templates फ़ोल्डर

Flask आपके ऐप के पास मौजूद templates/ नामक फ़ोल्डर में टेम्पलेट ढूँढता है। फ़ाइलें आमतौर पर .html पर समाप्त होती हैं।

# project/
#   app.py
#   templates/
#     index.html
print('Templates live in templates/')

render_template

render_template('index.html') एक टेम्पलेट लोड करके रेंडर किया गया HTML प्रतिक्रिया के रूप में लौटाता है।

from flask import Flask, render_template
app = Flask(__name__)

@app.route('/')
def home():
    return render_template('index.html')
print('home renders index.html')

डेटा भेजना

वेरिएबल को कीवर्ड तर्कों के रूप में भेजें। इसके बाद टेम्पलेट उन्हें प्रदर्शित कर सकता है।

from flask import Flask, render_template
app = Flask(__name__)

@app.route('/')
def home():
    return render_template('index.html', name='Alice')
print('name=Alice is sent to the template')

वेरिएबल का आउटपुट दिखाना

टेम्पलेट में {{ name }} किसी वेरिएबल को प्रिंट करता है। दोहरे घुँघराले कोष्ठक Jinja2 के अभिव्यक्ति सिंटैक्स का हिस्सा हैं।

# index.html
# <h1>Hello, {{ name }}!</h1>
print('Double braces output a value')

If कथन

Jinja2 के नियंत्रण कथन {% %} का उपयोग करते हैं। if ब्लॉक किसी शर्त के आधार पर सामग्री दिखाता है।

# {% if user %}
#   <p>Welcome back!</p>
# {% else %}
#   <p>Please log in.</p>
# {% endif %}
print('{% if %} branches the markup')

For लूप

{% for item in items %} से किसी सूची पर लूप चलाकर बार-बार दिखने वाला मार्कअप रेंडर करें, जैसे उत्पादों की सूची।

# <ul>
# {% for item in items %}
#   <li>{{ item }}</li>
# {% endfor %}
# </ul>
print('{% for %} repeats markup per item')

फ़िल्टर

पाइप के माध्यम से फ़िल्टर किसी मान को बदलते हैं: {{ name|upper }} उसे बड़े अक्षरों में बदलता है। अंतर्निहित फ़िल्टर में length, default और title शामिल हैं।

# {{ name|upper }}        -> ALICE
# {{ items|length }}      -> count
# {{ bio|default('N/A') }}
print('Filters transform values with |')

टेम्पलेट इनहेरिटेंस

एक बेस टेम्पलेट {% block %} प्लेसहोल्डर के साथ पृष्ठ का ढाँचा परिभाषित करता है। चाइल्ड टेम्पलेट {% extends %} के ज़रिए इसे अपनाते हैं और ब्लॉक भरते हैं।

# base.html
# <body>{% block content %}{% endblock %}</body>
#
# page.html
# {% extends 'base.html' %}
# {% block content %}<p>Hi</p>{% endblock %}
print('extends + block share a layout')

स्वचालित एस्केपिंग

Jinja2 वेरिएबल में मौजूद HTML को अपने-आप एस्केप करता है और क्रॉस-साइट स्क्रिप्टिंग से सुरक्षा देता है। <script> जैसा मान टेक्स्ट के रूप में दिखाया जाता है, चलाया नहीं जाता।

# If name = '<b>x</b>', {{ name }} renders the literal text
# Auto-escaping is on by default for safety
print('Auto-escaping prevents XSS')

url_for से लिंक करना

टेम्पलेट के अंदर आप अब भी url_for चला सकते हैं, खासकर स्थिर फ़ाइलों के लिए: {{ url_for('static', filename='style.css') }}।

# <link rel='stylesheet'
#   href="{{ url_for('static', filename='style.css') }}">
print('url_for works inside templates too')

त्वरित जाँच

Jinja2 से जुड़े अपने ज्ञान की जाँच करें।

पुनरावलोकन

आपने Jinja2 टेम्पलेटिंग सीखी।

  • render_template() templates/ से फ़ाइलों को रेंडर करता है
  • {{ }} मान दिखाता है; {% %} के ज़रिए if/for चलाए जाते हैं
  • |upper जैसे फ़िल्टर मानों को बदलते हैं
  • extends + block लेआउट इनहेरिटेंस सक्षम करते हैं
  • स्वचालित एस्केपिंग XSS से सुरक्षा देती है
शुरुआत निःशुल्क

एआई शिक्षक के साथ Python सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
76
पाठ
320

अक्सर पूछे जाने वाले प्रश्न

क्या “Jinja2 के साथ टेम्पलेट” पाठ निःशुल्क है?

हाँ—“Jinja2 के साथ टेम्पलेट” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Python Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Python Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“Jinja2 के साथ टेम्पलेट” में मैं क्या सीखूँगा?

गतिशील HTML रेंडर करें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Python Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Python Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Python Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।

“Jinja2 के साथ टेम्पलेट” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Python Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Python Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. रूट और दृश्य
  2. Jinja2 के साथ टेम्पलेट
  3. फ़ॉर्म और अनुरोध डेटा
  4. REST Endpoint बनाना
← Python Academy पर वापस जाएँ