Templates এর ভূমিকা এবং জিনজারো (Jinja2) Template Engine

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

307

TurboGears এর পরিচিতি

TurboGears হলো একটি পূর্ণাঙ্গ ওয়েব ফ্রেমওয়ার্ক যা Python প্রোগ্রামিং ভাষায় নির্মিত। এটি Model-View-Controller (MVC) আর্কিটেকচার অনুসরণ করে এবং ওয়েব অ্যাপ্লিকেশন নির্মাণের জন্য প্রয়োজনীয় সকল বৈশিষ্ট্য সরবরাহ করে, যেমন URL রাউটিং, ডেটাবেস ইন্টিগ্রেশন, ফর্ম হ্যান্ডলিং, এবং টেমপ্লেটিং। TurboGears, SQLAlchemy এবং Genshi বা Jinja2 টেমপ্লেট ইঞ্জিন ব্যবহার করে ডেটাবেস ম্যানেজমেন্ট এবং ডাইনামিক ওয়েব পেজ রেন্ডারিং সহজ করে তোলে।

TurboGears এর মূল লক্ষ্য হল দ্রুত এবং সাশ্রয়ী উপায়ে শক্তিশালী এবং স্কেলযোগ্য ওয়েব অ্যাপ্লিকেশন তৈরি করা। এই ফ্রেমওয়ার্কটি সাধারণত দ্রুত ওয়েব ডেভেলপমেন্টের জন্য ডিজাইন করা হয় এবং প্রাথমিকভাবে বড় এবং ছোট অ্যাপ্লিকেশন উভয়ের জন্য উপযুক্ত।


Templates এর ভূমিকা

Templates ওয়েব ডেভেলপমেন্টে একটি গুরুত্বপূর্ণ অংশ। টেমপ্লেট ব্যবহার করে আমরা ডায়নামিক HTML পেজ তৈরি করতে পারি যা ডেটা বা ব্যবহারকারীর ইনপুট অনুযায়ী পরিবর্তিত হয়। টেমপ্লেট ইঞ্জিনের মাধ্যমে কোডিংয়ের সময় HTML ফাইলগুলোকে কোডের সাথে মিশিয়ে ডাইনামিক পেজ রেন্ডারিং করা সম্ভব হয়, যা ওয়েব অ্যাপ্লিকেশন তৈরির একটি গুরুত্বপূর্ণ অংশ।

টেমপ্লেটিং মূলত ডেটা এবং HTML কোডের মধ্যে একটি সেতু তৈরি করে। যেখানে আপনি কাঁচা HTML এবং ডায়নামিক ডেটা (যেমন, ডাটাবেস থেকে আনা ডেটা বা ব্যবহারকারীর ইনপুট) একত্রিত করতে পারেন।

TurboGears টেমপ্লেট ইঞ্জিন হিসেবে Jinja2 বা Genshi ব্যবহার করতে পারে। এখানে আমরা Jinja2 এর সম্পর্কে বিস্তারিত আলোচনা করব।


Jinja2 Template Engine

Jinja2 একটি শক্তিশালী এবং জনপ্রিয় টেমপ্লেট ইঞ্জিন যা Python প্রোগ্রামিং ভাষায় তৈরি। এটি ডাইনামিক HTML, XML, অথবা অন্যান্য ফাইল ফর্ম্যাট জেনারেট করতে ব্যবহৃত হয়। Jinja2 টেমপ্লেটিং সিস্টেমের মাধ্যমে আপনি ডেটার সাথে HTML কোড মিশিয়ে ডাইনামিক ওয়েব পেজ তৈরি করতে পারবেন।

Jinja2 এ টেমপ্লেট তৈরির সময় কিছু বিশেষ ফিচার থাকে যা ডেভেলপমেন্টকে আরও দ্রুত এবং সহজ করে তোলে, যেমন:

  • Variables: টেমপ্লেটে ডায়নামিক ডেটা প্রবেশ করানো।
  • Loops: ডেটার উপর লুপিং (যেমন তালিকা বা ডিকশনারি) করা।
  • Conditionals: শর্তের ভিত্তিতে HTML কোড রেন্ডার করা।
  • Filters: ডেটা ফিল্টার বা ফরম্যাট করা।

Jinja2 মূলত সিম্পল এবং অ্যাডভান্সড টেমপ্লেটিং উভয়ের জন্য ব্যবহৃত হয়।


Jinja2 এর সাথে TurboGears টেমপ্লেটিং

TurboGears এ Jinja2 ব্যবহার করা হয় ডাইনামিক HTML পেজ রেন্ডারিংয়ের জন্য। যখন আপনি TurboGears অ্যাপ্লিকেশন তৈরি করবেন, তখন টেমপ্লেট ফাইলগুলোকে Jinja2 ব্যবহার করে প্রোসেস করা হয়।

Jinja2 Template Example:

ধরা যাক, আপনি একটি welcome.html টেমপ্লেট তৈরি করতে চান যেখানে একটি বার্তা এবং ব্যবহারকারীর নাম দেখানো হবে।

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Welcome</title>
</head>
<body>
    <h1>Welcome, {{ username }}!</h1>
    <p>{{ message }}</p>
</body>
</html>

এখানে, {{ username }} এবং {{ message }} হল Jinja2 এর ভ্যারিয়েবল, যা অ্যাপ্লিকেশন থেকে ডাইনামিকভাবে পূর্ণ হবে।

Jinja2 এর সাথে TurboGears কন্ট্রোলার উদাহরণ:

from turbojson import jsonify
from tg import expose, request
from jinja2 import Template

class RootController:
    @expose('welcome.html')
    def index(self):
        username = "John Doe"
        message = "This is your first dynamic page using Jinja2!"
        return dict(username=username, message=message)

এখানে, RootController ক্লাসের index ফাংশনে আমরা username এবং message ডেটা প্রেরণ করেছি। এগুলি টেমপ্লেটে Jinja2 দ্বারা প্রতিস্থাপিত হবে এবং HTML রেন্ডার হবে।


Jinja2 এর মূল বৈশিষ্ট্যসমূহ

  1. Variables: Jinja2 এ আপনি {{ variable_name }} এর মাধ্যমে ভ্যারিয়েবলকে টেমপ্লেটে ব্যবহার করতে পারেন।

    <h1>Welcome, {{ user.name }}</h1>
    
  2. Loops: Jinja2 লুপের মাধ্যমে ডেটা প্রদর্শন করতে সাহায্য করে।

    <ul>
      {% for item in items %}
        <li>{{ item }}</li>
      {% endfor %}
    </ul>
    
  3. Conditionals: শর্তের ভিত্তিতে HTML কন্টেন্ট দেখানোর জন্য ব্যবহার করা হয়।

    {% if user.is_authenticated %}
        <p>Welcome back!</p>
    {% else %}
        <p>Please log in.</p>
    {% endif %}
    
  4. Filters: ফিল্টার ব্যবহার করে ডেটাকে পরিবর্তন বা ফরম্যাট করা হয়।

    <p>{{ user.joined_date | date("YYYY-MM-DD") }}</p>
    
  5. Template Inheritance: আপনি একাধিক টেমপ্লেটের মধ্যে পুনরায় ব্যবহারের জন্য অংশ ভাগ করে নিতে পারেন।

    {% extends "base.html" %}
    {% block content %}
      <h1>Welcome, {{ user.name }}</h1>
    {% endblock %}
    

সারাংশ

TurboGears ফ্রেমওয়ার্কে Jinja2 টেমপ্লেট ইঞ্জিন ব্যবহার করে ডাইনামিক এবং সুন্দর ওয়েব পেজ তৈরি করা সম্ভব। Jinja2 এর মাধ্যমে আপনি ডেটা এবং HTML কোডের মধ্যে একটি সেতু তৈরি করে ডায়নামিক কন্টেন্ট সহজে প্রদর্শন করতে পারেন। TurboGears এবং Jinja2 একত্রে ব্যবহার করে আপনি খুব দ্রুত এবং সহজে শক্তিশালী ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারবেন। Jinja2 এর variables, loops, conditionals, filters, এবং template inheritance ফিচারগুলো TurboGears-এর সাথে কার্যকরীভাবে কাজ করে, যা ডেভেলপমেন্টকে আরো দক্ষ এবং স্কেলেবেল করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...