今天要讓收藏網站具有「回憶錄」的功能,不只是作品列表。
步驟 1:新增資料庫欄位
在根目錄建立 migrate_day20.py:
from database import get_db_connectionconnection = get_db_connection()columns = { row["name"] for row in connection.execute( "PRAGMA table_info(media)" ).fetchall()}if "finished_date" not in columns: connection.execute(""" ALTER TABLE media ADD COLUMN finished_date TEXT """)connection.commit()connection.close()print("日期欄位已準備完成。")
執行一次:
python migrate_day20.py
這裡先檢查欄位是否存在,再決定要不要新增,避免重複執行時因欄位已存在而報錯。
步驟 2:在新增與編輯表單中加入日期
在 add.html 和 edit.html 的心得欄位前加入:
觀看/通關日期
如果這段條件式在你目前的模板中不易理解,也可以在新增頁使用:
而在編輯頁使用:
步驟 3:修改新增和編輯路由
在兩個路由讀取表單的位置加入:
finished_date = request.form.get("finished_date", "").strip() or None
新增作品的 INSERT 語句加入 finished_date 欄位與對應的 ? 參數。
例如:
INSERT INTO media (
title, media_type, year, genre,
status, rating, notes, finished_date
)
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
參數清單最後加上:
finished_date
編輯作品則在 UPDATE 語句加入:
finished_date = ?
並在參數清單中加入 finished_date,位置要與 SQL 中的問號順序一致。
步驟 4:顯示日期與心得
在 detail.html 中加入:
測試
新增一部已看電影,填入日期和心得;再進入詳細頁,確認兩者都能顯示。重新啟動網站後,日期仍然應該存在。