Django में गतिशील दृश्य और टेम्पलेट्स का निर्माण

Django एक शक्तिशाली फ्रेमवर्क है जो गतिशील वेब एप्लिकेशन बनाना आसान बनाता है। इस लेख में, हम Django में गतिशील दृश्य और टेम्पलेट बनाने का तरीका जानेंगे, बुनियादी अवधारणाओं से लेकर अधिक उन्नत तकनीकों तक। हम यह कवर करेंगे कि दृश्य से टेम्पलेट में डेटा कैसे पास किया जाए और उस डेटा के आधार पर गतिशील रूप से सामग्री बनाने के लिए टेम्पलेट टैग का उपयोग कैसे किया जाए।

Django में दृश्य क्या हैं?

Django में, एक दृश्य एक पायथन फ़ंक्शन या क्लास-आधारित घटक है जो एक वेब अनुरोध लेता है और एक वेब प्रतिक्रिया देता है। प्रतिक्रिया एक HTML पृष्ठ, एक JSON ऑब्जेक्ट या किसी अन्य प्रकार की सामग्री हो सकती है। दृश्य आपको उपयोगकर्ता के अनुरोध के आधार पर गतिशील रूप से सामग्री उत्पन्न करने की अनुमति देते हैं।

एक सरल दृश्य बनाना

Django में दृश्य बनाने के लिए, आपको अपने Django ऐप की views.py फ़ाइल में एक फ़ंक्शन परिभाषित करना होगा। फ़ंक्शन एक HTTP अनुरोध प्राप्त करता है और एक HTTP प्रतिक्रिया देता है। उदाहरण के लिए:

from django.shortcuts import render

def home(request):
    return render(request, 'home.html')

यह सरल दृश्य "home.html" टेम्पलेट को प्रस्तुत करता है। लेकिन हम दृश्य से टेम्पलेट तक डेटा पास करके इसे और अधिक गतिशील बना सकते हैं।

डेटा को टेम्पलेट्स में भेजना

किसी दृश्य से टेम्पलेट में डेटा पास करने के लिए, आप रेंडर फ़ंक्शन को कॉल करते समय संदर्भ तर्क में शब्दकोश का उपयोग कर सकते हैं। उदाहरण के लिए, आइए टेम्पलेट में एक गतिशील संदेश पास करने के लिए "home" दृश्य को संशोधित करें:

def home(request):
    context = {
        'message': 'Welcome to my website!'
    }
    return render(request, 'home.html', context)

अब, "home.html" टेम्पलेट में, आप `message` वेरिएबल तक पहुँच सकते हैं:

<h1>{{ message }}</h1>

यह दृश्य से भेजा गया संदेश प्रदर्शित करेगा: "मेरी वेबसाइट में आपका स्वागत है!"

गतिशील सामग्री के लिए टेम्पलेट टैग का उपयोग करना

Django टेम्पलेट शक्तिशाली टेम्पलेट टैग का समर्थन करते हैं जो आपके HTML में गतिशील सामग्री उत्पन्न करने में मदद करते हैं। कुछ सामान्य टेम्पलेट टैग हैं:

  • {% if %}... {% endif %} सशर्त कथनों के लिए.
  • {% for %}... {% endfor %} डेटा पर लूपिंग के लिए।
  • HTML में गतिशील मान डालने के लिए {{ variable }}.

यदि कथन का उपयोग करना

आइए एक गतिशील संदेश जोड़ें जो केवल तभी दिखाई देता है जब कोई निश्चित शर्त सत्य हो। शर्त पास करने के लिए "home" दृश्य को संशोधित करें:

def home(request):
    context = {
        'message': 'Welcome to my website!',
        'user_logged_in': True
    }
    return render(request, 'home.html', context)

टेम्पलेट में, आप स्वागत संदेश प्रदर्शित करने के लिए if कथन का उपयोग तभी कर सकते हैं जब उपयोगकर्ता लॉग इन हो:

{% if user_logged_in %}
    <p>You are logged in!</p>
{% else %}
    <p>Please log in to access more features.</p>
{% endif %}

डेटा के माध्यम से लूपिंग

अब, आइटम की एक सूची को टेम्पलेट में पास करें और उन्हें for लूप का उपयोग करके प्रदर्शित करें। सबसे पहले, दृश्य को संशोधित करें:

def home(request):
    context = {
        'message': 'Welcome to my website!',
        'items': ['Item 1', 'Item 2', 'Item 3']
    }
    return render(request, 'home.html', context)

अब, टेम्पलेट में, प्रत्येक आइटम को प्रदर्शित करने के लिए for लूप का उपयोग करें:

<ul>
{% for item in items %}
    <li>{{ item }}</li>
{% endfor %}
</ul>

इससे आइटमों की अव्यवस्थित सूची प्रदर्शित होगी: आइटम 1, आइटम 2, और आइटम 3.

पुन: प्रयोज्य लेआउट के लिए टेम्पलेट इनहेरिटेंस

Django आपको एक सामान्य लेआउट बनाने के लिए टेम्पलेट इनहेरिटेंस का उपयोग करने की अनुमति देता है जिसे कई पृष्ठों में पुनः उपयोग किया जा सकता है। उदाहरण के लिए, आइए एक बेस टेम्पलेट बनाएं जिसमें आपके HTML पृष्ठ की संरचना शामिल हो:

<!-- base.html -->
<html>
    <head>
        <title>My Website</title>
    </head>
    <body>
        <header>
            <h1>My Website</h1>
        </header>
        
        <main>
            {% block content %}{% endblock %}
        </main>

        <footer>
            <p>Footer content here</p>
        </footer>
    </body>
</html>

अब, अपने "home.html" टेम्पलेट में, आधार टेम्पलेट का विस्तार करें और सामग्री ब्लॉक को परिभाषित करें:

<!-- home.html -->
{% extends 'base.html' %}

{% block content %}
    <h2>Welcome to the Home Page</h2>
    <p>This is the dynamic content of the home page.</p>
{% endblock %}

प्रस्तुत किए जाने पर, "home.html" सामग्री को आधार टेम्पलेट के {% block content %}{% endblock %} अनुभाग में डाला जाएगा।

निष्कर्ष

हमने सीखा कि Django में गतिशील दृश्य और टेम्पलेट कैसे बनाएं। दृश्यों से टेम्पलेट तक डेटा पास करके और Django के शक्तिशाली टेम्पलेट टैग का उपयोग करके, आप समृद्ध और इंटरैक्टिव वेब पेज बना सकते हैं। इसके अतिरिक्त, टेम्पलेट इनहेरिटेंस आपको अपने एप्लिकेशन में सामान्य लेआउट का पुनः उपयोग करने की अनुमति देता है, जिससे आपका कोड अधिक रखरखाव योग्य बन जाता है।

इन अवधारणाओं के साथ, आप अधिक जटिल Django अनुप्रयोगों का निर्माण शुरू कर सकते हैं और फ्रेमवर्क की पूरी शक्ति का लाभ उठा सकते हैं।

लिंक
Python