Template Inheritance এবং Reusability

TurboGears Templates এবং Views - টার্বোগিয়ার্স (TurboGears) - Web Development

244

TurboGears এবং Template Inheritance

TurboGears হল একটি প্যাথওয়ে ফ্রেমওয়ার্ক যা Python দিয়ে ওয়েব অ্যাপ্লিকেশন তৈরি করার জন্য ব্যবহৃত হয়। এটি একটি শক্তিশালী এবং সম্পূর্ণ স্ট্যাক ওয়েব ফ্রেমওয়ার্ক, যা MVC (Model-View-Controller) আর্কিটেকচার অনুসরণ করে এবং অন্যান্য জনপ্রিয় ফিচার যেমন templating, ORM, form validation, ইত্যাদি সরবরাহ করে।

Template Inheritance হল টেমপ্লেটের একটি শক্তিশালী ধারণা যা কোড পুনঃব্যবহারযোগ্যতা বাড়ায় এবং ওয়েব অ্যাপ্লিকেশনের ডেভেলপমেন্ট সহজ করে। TurboGears এ Mako Templates বা Jinja2 টেমপ্লেট ইঞ্জিন ব্যবহৃত হয়, যেখানে Template Inheritance একটি মূল উপাদান হিসেবে কাজ করে। এটি আপনাকে একটি বেস টেমপ্লেট তৈরি করতে এবং সেই বেস টেমপ্লেটকে বিভিন্ন পৃষ্ঠার জন্য এক্সটেন্ড করতে সাহায্য করে।


Template Inheritance কি?

Template Inheritance হল এমন একটি পদ্ধতি যেখানে একটি সাধারণ টেমপ্লেট (বা বেস টেমপ্লেট) তৈরি করা হয় এবং অন্যান্য টেমপ্লেটগুলি সেই বেস টেমপ্লেটের উপর নির্ভর করে তৈরি হয়, শুধুমাত্র প্রয়োজনীয় অংশগুলো কাস্টমাইজ করা হয়। এটি কোড পুনঃব্যবহার এবং সেন্ট্রালাইজড মেইনটেনেন্সের জন্য খুবই কার্যকরী।

উদাহরণস্বরূপ, যদি আপনার অ্যাপ্লিকেশনের সমস্ত পৃষ্ঠাতে একই হেডার, ফুটার এবং সাইডবার থাকে, তবে আপনি এই সাধারণ অংশগুলিকে একটি বেস টেমপ্লেটে রাখবেন এবং প্রতিটি নতুন পৃষ্ঠা তৈরির সময় শুধুমাত্র সেই অংশটুকু কাস্টমাইজ করবেন যা আলাদা।


TurboGears-এ Template Inheritance ব্যবহার

TurboGearsMako বা Jinja2 টেমপ্লেট ইঞ্জিন ব্যবহার করা যেতে পারে। এখানে আমরা Mako টেমপ্লেট ইঞ্জিন ব্যবহার করে একটি সাধারণ উদাহরণ দেখব।

১. বেস টেমপ্লেট তৈরি করা

বেস টেমপ্লেটে সাধারণ কাঠামো থাকবে, যেমন হেডার, ফুটার এবং সাইডবার। অন্য টেমপ্লেটগুলি এই টেমপ্লেটটিকে এক্সটেন্ড করবে এবং প্রয়োজনীয় কনটেন্ট যোগ করবে।

base.html (বেস টেমপ্লেট):

<!DOCTYPE html>
<html>
<head>
    <title>${title}</title>
</head>
<body>
    <header>
        <h1>My Web Application</h1>
        <nav>
            <a href="/">Home</a> | <a href="/about">About</a>
        </nav>
    </header>

    <div id="content">
        ${block content}
    </div>

    <footer>
        <p>Copyright © 2024</p>
    </footer>
</body>
</html>

এখানে, block content একটি প্লেসহোল্ডার যা অন্যান্য টেমপ্লেটগুলো দ্বারা কন্টেন্ট যুক্ত করা হবে।

২. পেজ টেমপ্লেট তৈরি করা

এখন, আপনি যে পৃষ্ঠাটি তৈরি করবেন, সেটি বেস টেমপ্লেটের ওপর ভিত্তি করে তৈরি হবে এবং শুধুমাত্র block content অংশটি কাস্টমাইজ করা হবে।

home.html (পেজ টেমপ্লেট):

<%inherit file="base.html"/>

<%block content>
    <h2>Welcome to the Home Page</h2>
    <p>This is the main content of the home page.</p>
</%block>

এখানে, <%inherit file="base.html"/> দিয়ে আমরা বেস টেমপ্লেটটিকে ইনহেরিট করেছি এবং <%block content> এর মধ্যে মূল কন্টেন্ট লিখেছি।

৩. অন্য পেজের জন্য টেমপ্লেট

আপনি যদি আরেকটি পেজ তৈরি করতে চান, যেমন About পেজ, তাহলে এর কন্টেন্টও বেস টেমপ্লেটের সাথে একইভাবে মেলে।

about.html (অন্য পেজ টেমপ্লেট):

<%inherit file="base.html"/>

<%block content>
    <h2>About Us</h2>
    <p>This is some information about the web application.</p>
</%block>

এখানে, about.htmlhome.html উভয়ই base.html এর ইনহেরিটেন্ট, কিন্তু তাদের কন্টেন্ট আলাদা।


Template Reusability (পুনঃব্যবহারযোগ্যতা)

Template Reusability হল কোড পুনঃব্যবহারযোগ্যতার একটি পদ্ধতি, যেখানে টেমপ্লেটের অংশগুলো বিভিন্ন পৃষ্ঠার জন্য একাধিকবার ব্যবহৃত হয়। TurboGears এ Template Inheritance এর মাধ্যমে পুনঃব্যবহারযোগ্যতা খুব সহজে অর্জন করা যায়, কারণ আপনি একবার একটি কন্টেন্ট সেকশন তৈরি করে তা বিভিন্ন টেমপ্লেটে ব্যবহার করতে পারবেন।

উদাহরণ: সাইডবার (Sidebar) পুনঃব্যবহার

ধরা যাক, আপনার অ্যাপ্লিকেশনের প্রতিটি পৃষ্ঠায় সাইডবার থাকবে। আপনি সাইডবারটি একটি আলাদা টেমপ্লেট ফাইল হিসেবে তৈরি করতে পারেন এবং বিভিন্ন পৃষ্ঠায় এটি ইনক্লুড করতে পারেন।

sidebar.html:

<div id="sidebar">
    <h3>Sidebar</h3>
    <ul>
        <li><a href="/">Home</a></li>
        <li><a href="/about">About</a></li>
    </ul>
</div>

এখন, আপনি এই সাইডবারটি বিভিন্ন পৃষ্ঠায় ইনক্লুড করতে পারেন।

home.html (সাইডবার ব্যবহার করে):

<%inherit file="base.html"/>

<%block content>
    <h2>Welcome to the Home Page</h2>
    <p>This is the main content of the home page.</p>

    <%include file="sidebar.html"/>
</%block>

এখানে, <%include file="sidebar.html"/> ব্যবহার করে আপনি সাইডবার টেমপ্লেটটিকে পুনঃব্যবহার করছেন।


TurboGears এর Template Inheritance এর সুবিধা

  1. কোড পুনঃব্যবহারযোগ্যতা: Template Inheritance ব্যবহার করে একই লেআউট বা কাঠামো বার বার তৈরি করার পরিবর্তে, একবার তৈরি করা টেমপ্লেট সবার জন্য ব্যবহার করা যায়।
  2. কোডের রিডেবিলিটি: একাধিক পৃষ্ঠায় একি লেআউট বা কন্টেন্ট রেখে, শুধুমাত্র আলাদা অংশ কাস্টমাইজ করা যায়, যা কোডকে আরও পরিষ্কার এবং সহজ করে তোলে।
  3. সহজ মেইনটেনেন্স: যেকোনো পরিবর্তন বা আপডেট বেস টেমপ্লেটে করা হলে, এটি সমস্ত পৃষ্ঠায় প্রভাব ফেলবে, ফলে মেইনটেনেন্স সহজ হয়।
  4. অ্যাপ্লিকেশনের স্কেলেবিলিটি: Template Inheritance ব্যবহার করে অ্যাপ্লিকেশনকে স্কেল করা অনেক সহজ, কারণ একবার টেমপ্লেট তৈরি করার পর সেটি পুরো সাইটে একসাথে কাজ করে।

সারাংশ

TurboGears-এ Template Inheritance এবং Reusability ওয়েব ডেভেলপমেন্টে একটি গুরুত্বপূর্ণ কৌশল। এটি কোডের পুনঃব্যবহারযোগ্যতা, রিডেবিলিটি এবং মেইনটেনেন্স সুবিধা প্রদান করে। Mako Templates বা Jinja2 এর মাধ্যমে Template Inheritance ব্যবহার করলে আপনি একাধিক টেমপ্লেটের মধ্যে একক কাঠামো ব্যবহার করতে পারবেন, যা অ্যাপ্লিকেশনটির কার্যকারিতা ও স্কেলেবিলিটি বৃদ্ধি করে।

Content added By
Promotion

Are you sure to start over?

Loading...