データベースからデータを削除するためにdelete_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
def delete_data(self,_id):
conn = sqlite3.connect(self.dbname)
cur = conn.cursor()
cur.execute(f'DELETE FROM users WHERE id={_id}')
conn.commit()
conn.close()
db = Database()
db.write_data('inoha_naito','Hello, CGI!')
db.delete_data(1)
print(db.read_data())
今回は、以下のように出力される。
[]
参考
sqlite3 --- SQLite データベース用の DB-API 2.0 インターフェース
ソースコード: Lib/sqlite3/ SQLite は、軽量なディスク上のデータベースを提供する C ライブラリです。別のサーバプロセスを用意する必要なく、 SQL クエリー言語の非標準的な一種を使用してデータベースにアクセスできます。...