CherryPy একটি হালকা ওয়েব ফ্রেমওয়ার্ক, যা বিভিন্ন ডাটাবেস সিস্টেমের সাথে কাজ করতে সক্ষম। আপনি CherryPy অ্যাপ্লিকেশন তৈরি করার সময় SQLite, MySQL, অথবা PostgreSQL এর মতো ডাটাবেস ব্যবহারের মাধ্যমে ডাইনামিক এবং পলিসি-ভিত্তিক ডেটা ম্যানেজমেন্ট সিস্টেম তৈরি করতে পারেন। এই টিউটোরিয়ালে আমরা CherryPy এর সাথে SQLite, MySQL এবং PostgreSQL ডাটাবেস সংযোগের পদ্ধতি দেখব।
১. SQLite ডাটাবেস সংযোগ
SQLite হলো একটি লাইটওয়েট ডাটাবেস সিস্টেম, যা ছোট এবং সহজ প্রকল্পগুলির জন্য আদর্শ। এটি ফাইল-ভিত্তিক ডাটাবেস, অর্থাৎ ডাটাবেসের ডেটা একটি .db ফাইলে সংরক্ষিত হয়।
SQLite সংযোগের উদাহরণ
স্টেপ ১: Python এর sqlite3 লাইব্রেরি ব্যবহার করে ডাটাবেস সংযোগ করুন।
import cherrypy
import sqlite3
class MyApp:
@cherrypy.expose
def index(self):
return "SQLite ডাটাবেস সংযোগ উদাহরণ"
@cherrypy.expose
def fetch_data(self):
# SQLite ডাটাবেস সংযোগ
conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()
# ডাটাবেস থেকে ডেটা ফেচ করা
cursor.execute("SELECT * FROM users")
data = cursor.fetchall()
conn.close()
return str(data)
if __name__ == '__main__':
cherrypy.quickstart(MyApp())
এখানে, mydatabase.db হলো SQLite ডাটাবেস ফাইল এবং users টেবিলের সব ডেটা ফেচ করা হচ্ছে।
২. MySQL ডাটাবেস সংযোগ
MySQL একটি শক্তিশালী রিলেশনাল ডাটাবেস ম্যানেজমেন্ট সিস্টেম, যা বড় অ্যাপ্লিকেশন এবং ওয়েব সাইটগুলির জন্য উপযুক্ত। Python-এ MySQL ব্যবহার করতে হলে mysql-connector-python বা PyMySQL লাইব্রেরি ব্যবহার করা হয়।
MySQL সংযোগের উদাহরণ
স্টেপ ১: প্রথমে mysql-connector-python ইনস্টল করুন।
pip install mysql-connector-python
স্টেপ ২: CherryPy অ্যাপ্লিকেশন দিয়ে MySQL ডাটাবেস সংযোগ।
import cherrypy
import mysql.connector
class MyApp:
@cherrypy.expose
def index(self):
return "MySQL ডাটাবেস সংযোগ উদাহরণ"
@cherrypy.expose
def fetch_data(self):
# MySQL ডাটাবেস সংযোগ
conn = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="yourdatabase"
)
cursor = conn.cursor()
# ডাটাবেস থেকে ডেটা ফেচ করা
cursor.execute("SELECT * FROM users")
data = cursor.fetchall()
conn.close()
return str(data)
if __name__ == '__main__':
cherrypy.quickstart(MyApp())
এখানে, localhost হল MySQL সার্ভারের হোস্ট এবং yourdatabase আপনার ডাটাবেসের নাম। users টেবিলের ডেটা ফেচ করা হচ্ছে।
৩. PostgreSQL ডাটাবেস সংযোগ
PostgreSQL একটি ওপেন সোর্স রিলেশনাল ডাটাবেস সিস্টেম, যা বড় পরিসরের ডেটাবেস অ্যাপ্লিকেশনগুলির জন্য উপযুক্ত। PostgreSQL এর সাথে সংযোগ করতে Python-এ psycopg2 লাইব্রেরি ব্যবহার করা হয়।
PostgreSQL সংযোগের উদাহরণ
স্টেপ ১: প্রথমে psycopg2 ইনস্টল করুন।
pip install psycopg2
স্টেপ ২: CherryPy অ্যাপ্লিকেশন দিয়ে PostgreSQL ডাটাবেস সংযোগ।
import cherrypy
import psycopg2
class MyApp:
@cherrypy.expose
def index(self):
return "PostgreSQL ডাটাবেস সংযোগ উদাহরণ"
@cherrypy.expose
def fetch_data(self):
# PostgreSQL ডাটাবেস সংযোগ
conn = psycopg2.connect(
host="localhost",
dbname="yourdatabase",
user="yourusername",
password="yourpassword"
)
cursor = conn.cursor()
# ডাটাবেস থেকে ডেটা ফেচ করা
cursor.execute("SELECT * FROM users")
data = cursor.fetchall()
conn.close()
return str(data)
if __name__ == '__main__':
cherrypy.quickstart(MyApp())
এখানে, localhost হল PostgreSQL সার্ভারের হোস্ট এবং yourdatabase আপনার ডাটাবেসের নাম। users টেবিলের ডেটা ফেচ করা হচ্ছে।
ডাটাবেসে টেবিল তৈরি করা (SQLite, MySQL, PostgreSQL)
SQLite টেবিল তৈরি:
import sqlite3
# SQLite ডাটাবেস সংযোগ
conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()
# টেবিল তৈরি করা
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
age INTEGER
)
''')
conn.commit()
conn.close()
MySQL টেবিল তৈরি:
import mysql.connector
# MySQL ডাটাবেস সংযোগ
conn = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="yourdatabase"
)
cursor = conn.cursor()
# টেবিল তৈরি করা
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
age INT
)
''')
conn.commit()
conn.close()
PostgreSQL টেবিল তৈরি:
import psycopg2
# PostgreSQL ডাটাবেস সংযোগ
conn = psycopg2.connect(
host="localhost",
dbname="yourdatabase",
user="yourusername",
password="yourpassword"
)
cursor = conn.cursor()
# টেবিল তৈরি করা
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
id SERIAL PRIMARY KEY,
name VARCHAR(100),
age INT
)
''')
conn.commit()
conn.close()
CherryPy-তে ডাটাবেস সংযোগ করার জন্য SQLite, MySQL, এবং PostgreSQL ব্যবহার করা যায়, এবং Python এর বিভিন্ন লাইব্রেরি (sqlite3, mysql-connector-python, psycopg2) এর মাধ্যমে সহজে ডাটাবেসের সাথে ইন্টারঅ্যাক্ট করা যায়। CherryPy অ্যাপ্লিকেশন তৈরি করার সময় এই ডাটাবেস সংযোগ ব্যবহার করে আপনি ডাইনামিক ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারেন যেখানে ডেটা ভান্ডার হিসেবে কোনো একটি রিলেশনাল ডাটাবেস ব্যবহৃত হবে।
Read more