【SQLite】データベースからデータを読み込む

データベースからデータを読み込むためにread_dataメソッドを作成する。

import sqlite3
import os

class Database:
  def __init__(self,_dbname='main.db'):
    self.dbname = _dbname
    if os.path.isfile(self.dbname) != True:
      self.create_bd()
      self.create_table()

  def create_bd(self):
    conn = sqlite3.connect(self.dbname)
    conn.close()

  def create_table(self):
    conn = sqlite3.connect(self.dbname)
    cur = conn.cursor()
    cur.execute('CREATE TABLE users(id INTEGER PRIMARY KEY AUTOINCREMENT, name STRING, message STRING)')
    conn.close()

  def write_data(self,_name,_message):
    conn = sqlite3.connect(self.dbname)
    cur = conn.cursor()
    cur.execute(f'INSERT INTO users(name,message) values("{_name}", "{_message}")')
    conn.commit()
    conn.close()

  def read_data(self):
    conn = sqlite3.connect(self.dbname)
    cur = conn.cursor()
    cur.execute('SELECT * FROM users')
    data = cur.fetchall()
    conn.close()
    return data

db = Database()
db.write_data('inoha_naito','Hello, CGI!')
print(db.read_data())

今回は、以下のように出力される。

[(1, 'inoha_naito', 'Hello, CGI!')]

参考

sqlite3 --- SQLite データベースに対する DB-API 2.0 インタフェース — Python 3.9.4 ドキュメント

コメント

タイトルとURLをコピーしました