Web2Py তে View ফাইলগুলি ইউজার ইন্টারফেস (UI) তৈরির জন্য ব্যবহৃত হয়। View ফাইলগুলি কন্ট্রোলার থেকে প্রাপ্ত ডেটা প্রদর্শন করে এবং ইউজারদের জন্য অ্যাপ্লিকেশনের ফ্রন্টএন্ড তৈরি করে। Web2Py তে ভিউ ফাইলগুলি সাধারণত HTML এবং Python কোডের সংমিশ্রণ হয়ে থাকে, যা টেমপ্লেট সিস্টেম ব্যবহার করে ডায়নামিক কনটেন্ট তৈরি করে।
এখানে Web2Py তে View ফাইল তৈরি এবং ব্যবহারের নিয়ম ব্যাখ্যা করা হলো।
Web2Py তে View ফাইল তৈরি এবং ব্যবহারের নিয়ম
১. View ফাইলের অবস্থান
Web2Py তে View ফাইলগুলি সাধারণত views ফোল্ডারে থাকে। প্রতিটি কন্ট্রোলারের জন্য আলাদা আলাদা ভিউ ফোল্ডার থাকে, এবং প্রতিটি অ্যাকশনের জন্য আলাদা আলাদা HTML ফাইল থাকে।
উদাহরণস্বরূপ:
/your_app_name
/views
/default
index.html
about.html
এখানে default হলো কন্ট্রোলারের নাম এবং index.html ও about.html হলো ভিউ ফাইল।
২. View ফাইল তৈরি করা
View ফাইল তৈরি করতে, আপনাকে HTML ফাইলের মধ্যে Python কোড ইনজেক্ট করতে হবে, যা কন্ট্রোলার থেকে পাঠানো ডেটা ভিউতে প্রদর্শন করবে।
ধরা যাক, একটি সিম্পল অ্যাপ্লিকেশন তৈরি করা হচ্ছে যেখানে ব্যবহারকারীদের একটি বার্তা এবং তালিকা দেখানো হবে।
Controllers (default.py):
def index(): message = "Welcome to Web2Py!" books = db().select(db.book.ALL) # ডেটাবেস থেকে বইয়ের তালিকা আনা হচ্ছে return dict(message=message, books=books)Views (default/index.html):
<h1>{{=message}}</h1> <h2>Book List:</h2> <ul> {{for book in books:}} <li>{{=book.title}}</li> {{pass}} </ul>এখানে
{{=message}}এবং{{for book in books:}}এর মাধ্যমে কন্ট্রোলার থেকে প্রাপ্ত ডেটা ভিউতে প্রদর্শিত হবে।
৩. View ফাইলের মাধ্যমে Python কোড ব্যবহার
Web2Py তে ভিউ ফাইলে Python কোড ব্যবহার করতে {{= }} সিনট্যাক্স ব্যবহার করা হয়। আপনি যেকোনো Python এক্সপ্রেশন বা ভেরিয়েবল ভিউতে প্রদর্শন করতে পারেন এই সিনট্যাক্সের মাধ্যমে।
ভেরিয়েবল প্রদর্শন:
<h1>{{=message}}</h1>এখানে
messageকন্ট্রোলার থেকে ভিউতে প্রেরিত একটি ভেরিয়েবল এবং তা HTML পেজে প্রদর্শিত হবে।লুপ ব্যবহার:
<ul> {{for book in books:}} <li>{{=book.title}}</li> {{pass}} </ul>এখানে
booksহল একটি লিস্ট, এবং এর মধ্যে থাকা প্রতিটি বইয়ের নামbook.titleদিয়ে প্রদর্শিত হবে।শর্ত (Condition) ব্যবহার:
{{if message:}} <p>{{=message}}</p> {{else:}} <p>No message available.</p> {{pass}}এখানে
messageভেরিয়েবলটি যদি থাকে, তাহলে তা প্রদর্শিত হবে, না হলে একটি ডিফল্ট বার্তা দেখানো হবে।
৪. ফর্ম তৈরি এবং প্রক্রিয়া করা
Web2Py তে ফর্ম তৈরি করতে SQLFORM ব্যবহার করা হয়, যা ডেটাবেস টেবিলের সাথে সম্পর্কিত ফর্ম তৈরি করে।
ফর্ম তৈরি:
def add_book(): form = SQLFORM(db.book) # db.book টেবিলের জন্য ফর্ম if form.process().accepted: response.flash = "Book added successfully!" return dict(form=form)View (add_book.html):
<h1>Add a New Book</h1> {{=form}} <!-- ফর্মটি এখানে প্রদর্শিত হবে -->এখানে
SQLFORM(db.book)ফর্মটি তৈরি করবে এবং তা ভিউতে প্রদর্শিত হবে। যদি ফর্মটি সফলভাবে সাবমিট হয়, তবে একটি ফ্ল্যাশ মেসেজ দেখানো হবে।
৫. ভিউতে স্ট্যাটিক ফাইল ব্যবহার
Web2Py তে CSS, JavaScript বা ইমেজ ফাইলগুলো static ফোল্ডারে রাখা হয়। এগুলোকে ভিউ ফাইলে ইনক্লুড করা যায়।
স্ট্যাটিক ফাইল ব্যবহার:
<link rel="stylesheet" href="{{=URL('static', 'css/styles.css')}}"> <script src="{{=URL('static', 'js/scripts.js')}}"></script>এখানে
static/css/styles.cssএবংstatic/js/scripts.jsফাইলগুলো ওয়েবপেজে লোড হবে।
৬. ভিউ ফাইলের ইনক্লুশন
আপনি একাধিক ভিউ ফাইল তৈরি করতে পারেন এবং তাদের একে অপরের মধ্যে ইনক্লুড করতে পারেন। উদাহরণস্বরূপ, একটি সাধারণ লেআউট বা হেডার/footer ফাইল তৈরি করা যেতে পারে যা অন্যান্য ভিউ ফাইলে ব্যবহার করা যাবে।
লেআউট ফাইল (layouts/default.html):
<html> <head> <title>{{=response.title}}</title> </head> <body> <header> <h1>Welcome to My Web2Py App</h1> </header> <section> {{=content}} <!-- এখানে ভিউ কনটেন্ট প্রদর্শিত হবে --> </section> </body> </html>Controller (default.py):
def index(): return dict(message="Hello from Web2Py!")View (default/index.html):
{{extend 'layouts/default.html'}} <h2>{{=message}}</h2>এখানে
{{extend 'layouts/default.html'}}এর মাধ্যমে লেআউট ফাইলটি ইনক্লুড করা হয়েছে।
সারাংশ
Web2Py তে View ফাইলগুলি ইউজার ইন্টারফেস তৈরির জন্য ব্যবহৃত হয় এবং Python কোড এবং HTML এর সংমিশ্রণ দিয়ে ডায়নামিক কনটেন্ট তৈরি করে।
- View ফাইলের মাধ্যমে আপনি কন্ট্রোলার থেকে প্রাপ্ত ডেটা দেখাতে পারেন।
- SQLFORM ব্যবহার করে ফর্ম তৈরি এবং প্রক্রিয়া করা যায়।
- স্ট্যাটিক ফাইল (CSS, JS, Images) ভিউতে ব্যবহার করা যায়।
- একাধিক ভিউ ফাইলের মধ্যে লেআউট ইনক্লুড করা সম্ভব।
এই প্রক্রিয়াটি Web2Py অ্যাপ্লিকেশনের ফ্রন্টএন্ড তৈরির জন্য একটি কার্যকরী এবং সহজ উপায় প্রদান করে।
Read more