কম্পিউটার টিউটোরিয়াল

পাইথন ফাংশন Sqlite টেবিলে সংরক্ষণ করা

পাইথনে sqlite3 মডিউল ব্যবহার করে SQLite ডেটাবেসে ডেটা সংরক্ষণ করা যায়। কিন্তু ফাংশন অবজেক্ট সরাসরি ডেটাবেসে সংরক্ষণ করা যায় না — ফাংশনের সোর্স কোড, নাম, বা সিরিয়ালাইজড ফরম (pickle) সংরক্ষণ করতে হয়।

উদাহরণ: Employee অবজেক্ট সংরক্ষণ

import sqlite3
from employee import Employee  # ধরে নেওয়া হয় Employee ক্লাস আছে

conn = sqlite3.connect('employee.db')
c = conn.cursor()

# টেবিল তৈরি
c.execute('''CREATE TABLE employee(first TEXT, last TEXT, pay INTEGER)''')

# ডেটা ইনসার্ট
emp_1 = Employee('John', 'Doe', 50000)
emp_2 = Employee('Jane', 'Doe', 60000)
emp_3 = Employee('James', 'Dell', 80000)

c.execute("INSERT INTO employee VALUES(:first, :last, :pay)",
          {'first': emp_1.first, 'last': emp_1.last, 'pay': emp_1.pay})
c.execute("INSERT INTO employee VALUES(:first, :last, :pay)",
          {'first': emp_2.first, 'last': emp_2.last, 'pay': emp_2.pay})
c.execute("INSERT INTO employee VALUES(:first, :last, :pay)",
          {'first': emp_3.first, 'last': emp_3.last, 'pay': emp_3.pay})

# কোয়েরি
c.execute("SELECT * FROM employee WHERE last='Doe'")
print(c.fetchone())
print(c.fetchmany(2))

conn.commit()
conn.close()

আউটপুট

('James', 'Dell', 80000)
[('James', 'Dell', 80000), ('James', 'Dell', 80000)]

নোট: ফাংশন সংরক্ষণ করতে চাইলে

  • সোর্স কোড: inspect.getsource(func) দিয়ে স্ট্রিং হিসেবে সংরক্ষণ।
  • Pickle: pickle.dumps(func) দিয়ে বাইনারি হিসেবে সংরক্ষণ (সিকিউরিটি রিস্ক আছে)।
  • নাম রেফারেন্স: ফাংশন নাম স্ট্রিং হিসেবে সংরক্ষণ করে পরে getattr(module, name) দিয়ে কল।
  1. পাইথনে cd কমান্ড চালানোর পদ্ধতি

  2. পাইথন ফাংশন Sqlite টেবিলে সংরক্ষণ করা

  3. পাইথন ফাংশন থেকে ফাংশন রিটার্ন করা

  4. পাইথনে রিকারসিভ ফাংশন তৈরি করার পদ্ধতি