Web2Py তে ডেটাবেস কানেকশন সেটআপ করা একটি গুরুত্বপূর্ণ কাজ, যা ওয়েব অ্যাপ্লিকেশনটির ডেটা সংরক্ষণ এবং পরিচালনার জন্য প্রয়োজনীয়। Web2Py ডিফল্টভাবে SQLite ডাটাবেস সিস্টেম ব্যবহার করে, তবে আপনি যদি MySQL বা PostgreSQL ব্যবহার করতে চান, তাহলে ডেটাবেস কানেকশন কনফিগারেশন আলাদা করতে হবে।
নিচে Web2Py তে বিভিন্ন ডাটাবেস কানেকশন সেটআপ করার প্রক্রিয়া আলোচনা করা হলো।
১. SQLite কানেকশন সেটআপ
Web2Py তে SQLite ডাটাবেস ব্যবহারের জন্য কোনো অতিরিক্ত কনফিগারেশন প্রয়োজন হয় না, কারণ এটি ডিফল্ট ডাটাবেস হিসেবে অন্তর্ভুক্ত থাকে। আপনি সহজেই db অবজেক্ট ব্যবহার করে ডাটাবেস সংযোগ করতে পারেন।
SQLite কানেকশন উদাহরণ:
# models/db.py
db = DAL('sqlite://storage.sqlite') # SQLite ডাটাবেস সংযোগ
এখানে, 'sqlite://storage.sqlite' সঠিক ডাটাবেস ফাইলের পথ দেখায়। Web2Py স্বয়ংক্রিয়ভাবে storage.sqlite নামক ফাইলটি তৈরি করবে যদি এটি না থাকে।
২. MySQL কানেকশন সেটআপ
Web2Py তে MySQL ডাটাবেস ব্যবহারের জন্য আপনাকে mysqlclient লাইব্রেরি ইনস্টল করতে হবে এবং সঠিক কানেকশন স্ট্রিং ব্যবহার করতে হবে।
MySQL কানেকশন সেটআপ:
MySQLClient ইনস্টল করা: প্রথমে, MySQL ডাটাবেস কানেকশন ব্যবহারের জন্য
mysqlclientইনস্টল করতে হবে। এটি Python এর জন্য একটি লাইব্রেরি যা MySQL ডাটাবেসের সাথে যোগাযোগ করার জন্য ব্যবহার করা হয়।pip install mysqlclient- MySQL কানেকশন স্ট্রিং: এর পর আপনি
DALঅবজেক্ট ব্যবহার করে MySQL ডাটাবেস কানেক্ট করতে পারবেন।
MySQL কানেকশন উদাহরণ:
# models/db.py
db = DAL('mysql://username:password@localhost/dbname') # MySQL কানেকশন
এখানে:
username— আপনার MySQL ইউজারের নাম।password— ইউজারের পাসওয়ার্ড।localhost— ডাটাবেস সার্ভারের হোস্ট (যদি এটি লোকালহোস্ট না হয়, তবে অন্য IP ঠিকানা ব্যবহার করুন)।dbname— আপনার ডাটাবেসের নাম।
৩. PostgreSQL কানেকশন সেটআপ
Web2Py তে PostgreSQL ডাটাবেস ব্যবহারের জন্য psycopg2 লাইব্রেরি ইনস্টল করতে হবে এবং সঠিক কানেকশন স্ট্রিং ব্যবহার করতে হবে।
PostgreSQL কানেকশন সেটআপ:
Psycopg2 ইনস্টল করা: PostgreSQL ডাটাবেস কানেকশন ব্যবহারের জন্য
psycopg2লাইব্রেরি ইনস্টল করা প্রয়োজন।pip install psycopg2- PostgreSQL কানেকশন স্ট্রিং: PostgreSQL ডাটাবেস কানেক্ট করার জন্য আপনি
DALঅবজেক্ট ব্যবহার করবেন, যেখানে ডাটাবেস কানেকশন স্ট্রিং উল্লেখ করা হয়।
PostgreSQL কানেকশন উদাহরণ:
# models/db.py
db = DAL('postgres://username:password@localhost/dbname') # PostgreSQL কানেকশন
এখানে:
username— PostgreSQL ইউজারের নাম।password— ইউজারের পাসওয়ার্ড।localhost— ডাটাবেস সার্ভারের হোস্ট (যদি এটি লোকালহোস্ট না হয়, তবে অন্য IP ঠিকানা ব্যবহার করুন)।dbname— PostgreSQL ডাটাবেসের নাম।
ডাটাবেস সংযোগ কনফিগারেশন ফাইল
Web2Py তে ডাটাবেস কানেকশন সাধারণত models/db.py ফাইলে রাখা হয়। এই ফাইলটিতে আপনার ডাটাবেস কনফিগারেশন কোড থাকবে এবং এটি আপনার অ্যাপ্লিকেশনের সাথে সংযুক্ত থাকবে। আপনি ডাটাবেসের জন্য মডেল ফাইলের মধ্যে টেবিল ডিফাইন করেও ডাটাবেসের কাজ পরিচালনা করতে পারেন।
উদাহরণ: মডেল ফাইল (db.py) তৈরি করা
# models/db.py
# SQLite ডাটাবেস কানেকশন
db = DAL('sqlite://storage.sqlite')
# অথবা MySQL / PostgreSQL কানেকশন
# db = DAL('mysql://username:password@localhost/dbname') # MySQL কানেকশন
# db = DAL('postgres://username:password@localhost/dbname') # PostgreSQL কানেকশন
# একটি টেবিল ডিফাইন করা
db.define_table('person',
Field('name', 'string'),
Field('email', 'string'))
# ডাটাবেস অপারেশন
db.person.insert(name="John Doe", email="john@example.com")
এখানে:
db.define_table()— টেবিল তৈরি করতে ব্যবহৃত হয়।db.person.insert()— টেবিলের মধ্যে ডেটা সন্নিবেশিত করতে ব্যবহৃত হয়।
ডাটাবেস অপারেশন (CRUD) উদাহরণ
Web2Py তে ডাটাবেস অপারেশন সাধারণত db অবজেক্টের মাধ্যমে করা হয়। এর মাধ্যমে আপনি Create, Read, Update, এবং Delete (CRUD) অপারেশন করতে পারেন।
উদাহরণ:
# Create: ডেটা সন্নিবেশিত করা
db.person.insert(name="Alice", email="alice@example.com")
# Read: ডেটা রিট্রিভ করা
people = db().select(db.person.ALL)
# Update: ডেটা আপডেট করা
db(db.person.name == "Alice").update(email="alice_new@example.com")
# Delete: ডেটা মুছে ফেলা
db(db.person.name == "Alice").delete()
সারাংশ
Web2Py তে ডেটাবেস কানেকশন সেটআপ করা সহজ। আপনি SQLite, MySQL, এবং PostgreSQL এর মধ্যে যেকোনো একটি ব্যবহার করতে পারেন। SQLite ডিফল্ট ডাটাবেস হিসেবে আসে, তবে MySQL এবং PostgreSQL ব্যবহার করতে আপনাকে নির্দিষ্ট লাইব্রেরি ইনস্টল করতে হবে এবং কানেকশন স্ট্রিং কনফিগার করতে হবে। এরপর আপনি DAL অবজেক্ট ব্যবহার করে ডেটাবেসের সাথে যোগাযোগ করতে পারেন এবং CRUD অপারেশন সম্পাদন করতে পারেন।
Read more