Web2Py তে Template Engine এমন একটি সিস্টেম যা ডাইনামিক কনটেন্ট তৈরি করতে ব্যবহৃত হয়। Web2Py এর টেমপ্লেট সিস্টেম ব্যবহার করে আপনি HTML, XML, বা অন্য কোনো ফরম্যাটে ডাইনামিক কনটেন্ট তৈরি করতে পারেন, যা কন্ট্রোলার থেকে প্রাপ্ত ডেটা প্রদর্শন করে। টেমপ্লেট ইঞ্জিনটি কোড এবং কনটেন্ট আলাদা রাখতে সাহায্য করে, যা ওয়েব অ্যাপ্লিকেশনটি আরও পরিষ্কার এবং ব্যবস্থাপনা করা সহজ করে তোলে।
Web2Py এর টেমপ্লেট ইঞ্জিন
Web2Py এর টেমপ্লেট ইঞ্জিন মূলত Python কোডের সাথে HTML বা XML ট্যাগের সংমিশ্রণ ব্যবহার করে। Web2Py টেমপ্লেট ইঞ্জিনটি খুব সহজ এবং কার্যকরী, যা ডাইনামিক কনটেন্ট তৈরির জন্য খুবই উপযোগী।
টেমপ্লেট ফাইলের অবস্থান
Web2Py তে views ফোল্ডারে টেমপ্লেট ফাইল থাকে। সাধারণত এই ফোল্ডারের মধ্যে .html ফাইল থাকে, যা কন্ট্রোলার থেকে প্রাপ্ত ডেটা দেখানোর জন্য ব্যবহৃত হয়।
উদাহরণস্বরূপ:
/your_app_name
/views
default/
index.html
add_book.html
এখানে index.html এবং add_book.html ফাইল দুটি ভিউ হিসেবে কাজ করে, যেগুলি কন্ট্রোলার থেকে ডেটা গ্রহণ করে এবং ব্যবহারকারীকে প্রদর্শন করে।
Web2Py টেমপ্লেটের গঠন
Web2Py তে টেমপ্লেট ফাইল HTML এর মতোই দেখতে হয়, তবে এতে Python কোডও ব্যবহার করা যায়। Python কোড টেমপ্লেটে যুক্ত করার জন্য {{= ... }} সিনট্যাক্স ব্যবহার করা হয়। এটি কন্ট্রোলার থেকে প্রাপ্ত ডেটা ডাইনামিকভাবে প্রদর্শন করতে সহায়তা করে।
উদাহরণ ১: "Hello, World!" টেমপ্লেট
ধরা যাক, আপনি একটি সিম্পল "Hello, World!" অ্যাপ্লিকেশন তৈরি করতে চান। কন্ট্রোলার থেকে একটি বার্তা পাঠানো হবে এবং টেমপ্লেটে তা প্রদর্শিত হবে।
controllers/default.py:
def index():
message = "Hello, Web2Py!"
return dict(message=message)
views/default/index.html:
<h2>{{=message}}</h2>
এখানে, কন্ট্রোলার index() ফাংশন থেকে message ভেরিয়েবল টেমপ্লেটে পাস করা হয়, এবং {{=message}} সিনট্যাক্সের মাধ্যমে এটি HTML তে দেখানো হয়।
উদাহরণ ২: লুপ ব্যবহার করা
Web2Py তে আপনি Python লুপ ব্যবহার করে ডাইনামিক কনটেন্ট তৈরি করতে পারেন। এখানে আমরা একটি বইয়ের তালিকা দেখাবো।
controllers/default.py:
def index():
books = ["Harry Potter", "Web2Py Guide", "Python Basics"]
return dict(books=books)
views/default/index.html:
<h2>Books List</h2>
<ul>
{{for book in books:}}
<li>{{=book}}</li>
{{pass}}
</ul>
এখানে, books নামের লিস্টটি কন্ট্রোলার থেকে ভিউতে পাঠানো হয়েছে এবং {{for book in books:}} লুপের মাধ্যমে প্রতিটি বইয়ের নাম একটি <li> ট্যাগে দেখানো হচ্ছে।
উদাহরণ ৩: ফর্ম ব্যবহার
Web2Py তে ফর্ম ব্যবহার করা খুব সহজ। ফর্মের মাধ্যমে ব্যবহারকারীর ইনপুট গ্রহণ করা হয় এবং তারপর তা প্রক্রিয়া করা হয়। ফর্মের ডেটা কন্ট্রোলারে প্রেরিত হয় এবং ফলাফল ভিউতে দেখানো হয়।
controllers/default.py:
def add_book():
form = SQLFORM(db.book)
if form.process().accepted:
response.flash = 'Book Added!'
return dict(form=form)
views/default/add_book.html:
<h1>Add a New Book</h1>
{{=form}}
এখানে, SQLFORM ব্যবহার করে একটি ফর্ম তৈরি করা হয়েছে, যা একটি বইয়ের নাম ইনপুট নেয় এবং সেটি ডেটাবেসে সংরক্ষণ করে।
টেমপ্লেট ইঞ্জিনের বিশেষ বৈশিষ্ট্য
- ডাইনামিক ডেটা: টেমপ্লেট সিস্টেমের মাধ্যমে আপনি ডাইনামিকভাবে ডেটা তৈরি এবং প্রদর্শন করতে পারেন, যেমন ইউজারের ইনপুট বা ডেটাবেস থেকে প্রাপ্ত তথ্য।
- Python কোড ব্যবহার: HTML এর মধ্যে সরাসরি Python কোড যুক্ত করা যায়, যা ডাইনামিক কনটেন্ট তৈরির জন্য খুবই সহায়ক।
- ফর্ম সমর্থন: Web2Py স্বয়ংক্রিয়ভাবে ফর্ম ভ্যালিডেশন, ফাইল আপলোড, এবং অন্যান্য ইনপুট ফিচার সমর্থন করে, যা টেমপ্লেটের মধ্যে ব্যবহার করা যায়।
- অপ্টিমাইজড টেমপ্লেট: টেমপ্লেট ইঞ্জিন HTML কোড এবং Python কোডের মধ্যে পারফরম্যান্সের ব্যালান্স তৈরি করে, যার ফলে ওয়েব অ্যাপ্লিকেশন দ্রুত কাজ করে।
Web2Py টেমপ্লেটের Syntax
- Python Expression:
{{= expression}}- Python এক্সপ্রেশনকে HTML টেমপ্লেটে রেন্ডার করে। যেমন:
{{=message}}
- Python এক্সপ্রেশনকে HTML টেমপ্লেটে রেন্ডার করে। যেমন:
- Looping:
{{for item in list:}} ... {{pass}}- লুপের মাধ্যমে তালিকা বা অন্য কোনও আইটেমের ওপর অপারেশন করা। যেমন:
{{for book in books:}} <li>{{=book}}</li> {{pass}}
- লুপের মাধ্যমে তালিকা বা অন্য কোনও আইটেমের ওপর অপারেশন করা। যেমন:
- Conditionals:
{{if condition:}} ... {{else:}} ... {{pass}}কন্ডিশনাল স্টেটমেন্ট ব্যবহার করে নির্দিষ্ট শর্তে আলাদা আলাদা কনটেন্ট দেখানো। যেমন:
{{if books:}} <ul> {{for book in books:}} <li>{{=book}}</li> {{pass}} </ul> {{else:}} <p>No books available.</p> {{pass}}
সারাংশ
Web2Py এর Template Engine হল একটি শক্তিশালী টুল যা ডাইনামিক কনটেন্ট তৈরি করতে ব্যবহৃত হয়। এটি Python কোড এবং HTML এর সংমিশ্রণ ব্যবহার করে, যাতে ডেভেলপাররা সহজে ডাইনামিক ওয়েব পেজ তৈরি করতে পারেন। টেমপ্লেট সিস্টেমের মাধ্যমে আপনি ডেটাবেস থেকে প্রাপ্ত তথ্য, ফর্ম ইনপুট এবং অন্যান্য ডাইনামিক কনটেন্ট খুব সহজে প্রদর্শন করতে পারেন। Web2Py তে টেমপ্লেট ইঞ্জিন ব্যবহার করে আপনার ওয়েব অ্যাপ্লিকেশন তৈরি করতে আরও বেশি ফ্লেক্সিবিলিটি এবং কার্যকারিতা পাওয়া যায়।
Read more