投稿

[Python 100日チャレンジ] Day 78 - PythonとSQLiteでCRUDを作る

Pythonのsqlite3でCRUD関数を作り、データベース操作を再利用しやすい形に整理します。

[Python 100日チャレンジ] Day 78 - PythonとSQLiteでCRUDを作る

CRUDとは

CRUDは、Create、Read、Update、Deleteの頭文字です。アプリでデータを扱う基本操作を表します。

関数に分ける

1
2
3
4
5
6
7
8
9
10
11
import sqlite3

def get_connection():
    return sqlite3.connect("app.db")

def create_user(name, email):
    with get_connection() as conn:
        conn.execute(
            "INSERT INTO users (name, email) VALUES (?, ?)",
            (name, email),
        )

接続やSQLを関数にまとめると、同じ処理を何度も書かずに済みます。

読み取り関数

1
2
3
4
def list_users():
    with get_connection() as conn:
        cursor = conn.execute("SELECT id, name, email FROM users")
        return cursor.fetchall()

一覧取得、1件取得、検索などを用途ごとに分けます。

更新と削除

1
2
3
4
5
6
7
def update_email(user_id, email):
    with get_connection() as conn:
        conn.execute("UPDATE users SET email = ? WHERE id = ?", (email, user_id))

def delete_user(user_id):
    with get_connection() as conn:
        conn.execute("DELETE FROM users WHERE id = ?", (user_id,))

今日のゴール

PythonとSQLiteを組み合わせると、小さなアプリのデータ保存機能を作れます。CRUDを関数化して、使いやすいデータアクセス層にしましょう。

この投稿は投稿者によって CC BY 4.0 の下でライセンスされています。