Web2Py তে CRUD অপারেশন (Create, Read, Update, Delete) একটি গুরুত্বপূর্ণ অংশ, যা ডেটাবেসে ডেটা ম্যানিপুলেশন করার জন্য ব্যবহৃত হয়। এই অপারেশনগুলো সহজে করা যায়, কারণ Web2Py ডিফল্টভাবে ডাটাবেস পরিচালনা ও ডেটা ম্যানিপুলেশনকে অনেকটা সরল করে দিয়েছে। নিচে আমরা প্রতিটি CRUD অপারেশন এবং Web2Py তে এগুলো কিভাবে কার্যকরী করা যায়, তা বিস্তারিতভাবে আলোচনা করব।
Web2Py তে CRUD অপারেশন
১. Create (তথ্য তৈরি করা)
Web2Py তে Create অপারেশনটি নতুন রেকর্ড ডাটাবেসে সংরক্ষণ করার জন্য ব্যবহৃত হয়। এর জন্য Web2Py এর SQLFORM অথবা ডিরেক্ট ডাটাবেস অপারেশন ব্যবহার করা যায়।
উদাহরণ: নতুন বইয়ের তথ্য তৈরি করা:
# controllers/default.py
def create_book():
form = SQLFORM(db.book)
if form.process().accepted:
response.flash = 'Book Created!'
elif form.errors:
response.flash = 'Form has errors!'
return dict(form=form)
এখানে:
SQLFORM(db.book)ফর্ম তৈরি করে, যাbookটেবিলের একটি রেকর্ড তৈরি করবে।form.process()ফর্মটি প্রক্রিয়া করে এবং সফল হলে "Book Created!" বার্তা দেখানো হয়।
২. Read (তথ্য পড়া)
Read অপারেশনটি ডাটাবেস থেকে তথ্য পড়তে ব্যবহৃত হয়। আপনি db অবজেক্ট এবং select() ফাংশন ব্যবহার করে ডেটা পড়ে নিতে পারেন।
উদাহরণ: বইয়ের তালিকা পড়া:
# controllers/default.py
def read_books():
books = db().select(db.book.ALL)
return dict(books=books)
এখানে:
db().select(db.book.ALL)কোডটিbookটেবিল থেকে সমস্ত রেকর্ড নির্বাচন করে এবং তাbooksভেরিয়েবলে সংরক্ষণ করে।- ভিউতে বইয়ের তালিকা প্রদর্শন করা হবে।
৩. Update (তথ্য আপডেট করা)
Update অপারেশনটি একটি নির্দিষ্ট রেকর্ডকে পরিবর্তন বা আপডেট করার জন্য ব্যবহৃত হয়। এটি SQLFORM এর মাধ্যমে সহজে করা যায়।
উদাহরণ: বইয়ের তথ্য আপডেট করা:
# controllers/default.py
def update_book():
book_id = request.args(0) # প্যারামিটার থেকে বইয়ের ID নেয়া
book = db.book(book_id) # সেই বইটি খুঁজে পাওয়া
form = SQLFORM(db.book, book) # বইটি আপডেট করার জন্য ফর্ম
if form.process().accepted:
response.flash = 'Book Updated!'
elif form.errors:
response.flash = 'Form has errors!'
return dict(form=form)
এখানে:
request.args(0)প্যারামিটার থেকে বইয়ের ID নেয়া হয়।SQLFORM(db.book, book)ব্যবহার করে সেই বইটি আপডেট করার জন্য ফর্ম তৈরি করা হয়।- ফর্মটি প্রক্রিয়া করা হলে বইয়ের তথ্য আপডেট হয়।
৪. Delete (তথ্য মুছে ফেলা)
Delete অপারেশনটি একটি নির্দিষ্ট রেকর্ড মুছে ফেলার জন্য ব্যবহৃত হয়। এটি db অবজেক্টের delete() ফাংশন ব্যবহার করে করা হয়।
উদাহরণ: বইয়ের তথ্য মুছে ফেলা:
# controllers/default.py
def delete_book():
book_id = request.args(0) # প্যারামিটার থেকে বইয়ের ID নেয়া
db(db.book.id == book_id).delete() # বইয়ের রেকর্ড মুছে ফেলা
redirect(URL('read_books')) # বইয়ের তালিকা পেজে রিডিরেক্ট
এখানে:
db(db.book.id == book_id).delete()কোডটি নির্দিষ্ট বইয়ের রেকর্ড মুছে ফেলে।redirect(URL('read_books'))ব্যবহার করে বইয়ের তালিকা পেজে রিডিরেক্ট করা হয়।
SQLFORM ব্যবহার করে CRUD
Web2Py তে SQLFORM ক্লাসটি ব্যবহার করে খুব সহজেই CRUD অপারেশন করা যায়। SQLFORM হলো একটি ডাইনামিক ফর্ম জেনারেটর যা মডেল অনুযায়ী HTML ফর্ম তৈরি করে এবং ফর্ম প্রক্রিয়া করে।
Create: SQLFORM(db.table_name) ব্যবহার করে নতুন রেকর্ড তৈরি করা।
Read: ডাটাবেস থেকে রেকর্ড পড়তে db.table_name.select() ব্যবহার করা।
Update: SQLFORM(db.table_name, record) ব্যবহার করে নির্দিষ্ট রেকর্ড আপডেট করা।
Delete: db(db.table_name.id == record_id).delete() ব্যবহার করে নির্দিষ্ট রেকর্ড মুছে ফেলা।
CRUD অপারেশন-এর ভিউ (View)
Web2Py তে CRUD অপারেশন করার জন্য ভিউ (HTML টেমপ্লেট) খুব গুরুত্বপূর্ণ। ভিউয়ের মাধ্যমে আপনি ইউজারের ইনপুট এবং ডেটা প্রদর্শন করতে পারেন।
Create ভিউ (New Book Form):
<h1>Add a New Book</h1>
{{=form}}
Read ভিউ (Books List):
<h1>Books List</h1>
<table>
<tr><th>Title</th><th>Author</th><th>Actions</th></tr>
{{for book in books:}}
<tr>
<td>{{=book.title}}</td>
<td>{{=book.author}}</td>
<td>
<a href="{{=URL('update_book', args=[book.id])}}">Edit</a> |
<a href="{{=URL('delete_book', args=[book.id])}}">Delete</a>
</td>
</tr>
{{pass}}
</table>
Update ভিউ (Edit Book Form):
<h1>Edit Book</h1>
{{=form}}
সারাংশ
Web2Py তে CRUD অপারেশন (Create, Read, Update, Delete) খুব সহজ এবং স্বয়ংক্রিয়ভাবে পরিচালনা করা যায়। Web2Py এর SQLFORM ক্লাস ডাটাবেস ম্যানিপুলেশন এবং ফর্ম প্রক্রিয়া করার জন্য ব্যবহৃত হয়। create_book() ফাংশন ব্যবহার করে নতুন বই তৈরি করা, read_books() ফাংশন ব্যবহার করে বইয়ের তালিকা পড়া, update_book() ফাংশন দিয়ে বইয়ের তথ্য আপডেট করা এবং delete_book() ফাংশন দিয়ে বইয়ের তথ্য মুছে ফেলা যায়। Web2Py এর ফিচারগুলো ব্যবহার করে আপনি ডেটাবেস পরিচালনা করতে পারেন খুব সহজেই।
Read more