投稿

[Python 100日チャレンジ] Day 80 - ミニプロジェクト: SQLite Todoアプリ

PythonとSQLiteでTodoアプリを作り、テーブル設計、CRUD、完了状態の更新を実践します。

[Python 100日チャレンジ] Day 80 - ミニプロジェクト: SQLite Todoアプリ

今日のプロジェクト

Day 80では、Phase 8で学んだSQLとSQLiteを使って、CLI版のTodoアプリを作ります。小さなアプリですが、データベースを使う実践としてとても良い題材です。

テーブル設計

1
2
3
4
5
6
CREATE TABLE todos (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    title TEXT NOT NULL,
    done INTEGER DEFAULT 0,
    created_at TEXT
);

Todoには、タイトル、完了状態、作成日時を持たせます。

追加する

1
2
3
def add_todo(title):
    with sqlite3.connect("todo.db") as conn:
        conn.execute("INSERT INTO todos (title, done) VALUES (?, 0)", (title,))

一覧を見る

1
2
3
def list_todos():
    with sqlite3.connect("todo.db") as conn:
        return conn.execute("SELECT id, title, done FROM todos").fetchall()

完了にする

1
2
3
def complete_todo(todo_id):
    with sqlite3.connect("todo.db") as conn:
        conn.execute("UPDATE todos SET done = 1 WHERE id = ?", (todo_id,))

今日のゴール

Todoアプリでは、CREATE、SELECT、UPDATE、DELETEの基本を一通り使います。小さなCRUDアプリを完成させることで、PythonとSQLiteの接続がかなり実用的になります。

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