方便自己整理所有的觀看紀錄,無論是動漫、電影、還是劇
有什麼用?
- 純粹我自己會在各種網站上看電影、動漫等等的,但有些網頁會記錄,下次登入紀錄又沒了。又或者是例如有些漫畫網站,手機和電腦瀏覽的紀錄又不同,久了沒看,回來要再看的時候就又忘了看到哪,翻半天。總之呢,做這個project的目的,就是解決這個我一直想開發的工具,順便玩玩網頁。
- 網路上找不到相似的工具,可能有很多替代方案,例如純手寫就是一個🤣
目標
- 寫出簡單表格,並且可以新增紀錄,包含作品類型、作品名稱、集(季)數、目前的觀看進度
- 多用戶,使用帳號密碼管理
語言與工具的選擇
- 我第一個就想到Flask,因為他是快速開發網頁的好選擇,之前有稍微玩一下
- 數據庫方面使用sqlite,最輕量的就可以滿足我的需求的
GPT老師問一問GG了,ajax+flask+jinja,讓我整個卡在update功能,眼見不會的太多了,對於全部都不熟悉,我還是決定打掉重來比較快,於是參考了這個影片做一遍,對於flask和jinja更熟悉了,就來試試看是否能改造為我自己的網頁
Code都是參考那部影片裡去做修改的,在另一篇文章裡有詳細流程
資料庫建置
大致結構為:
- title: 節目標題
- season: 季、卷 etc.
- value: season的值
- episode: 集數
- progress: 進度
- date_created: 以便照建立順序排序
至於資料庫的創建請見: 把資料庫造出來
__repr__
是一個自我描述的方法,repr(物件)就會回傳__repr__
function裡的東西
請參見: repr與str雜談———暴風雨前的輕鬆小品技術文
好奇心驅使下寫了一個簡短的python來印出sqlite的內容
不懂id
是怎麼被創建的,可能是primary_key
預設的行為,研究了一下,是id
裡的autoincrement
argument默認為true
,也就是等於 id = db.Column(db.Integer, primary_key=True, autoincrement=True)
請見第一個回答: unable to create autoincrementing primary key with flask-sqlalchemy
Create開發
Delete開發
基本上可以照搬文章中的code,改一下變數名稱就好
這裡附上完整實作了create
和delete
功能的html
,以免遺漏
Update開發
是稍微複雜一點點,但概念都是相通的,需要修改或是新增以下檔案:
- app.py
- update.html
- index.html
首先app.py
,加上update function
接著是新增給用戶update的頁面-update.html
比較特別的是:
action
要記得附上history.id
- 各個欄位的值要用
jinja2
附上,這樣用戶才會看得到資料,方便修改
season
的部分為了讓網頁默認選擇該history
的season
,所以用Jinja2
判斷哪個該是selected
,也就是默認被選擇的
最後是index.html
額外修改
核心功能至此已開發完畢,接下來就是外觀或是使用上面的調整了
當season
選擇無
的時候就是代表用戶要記錄的無須季
或是卷
等等的,只純粹紀錄集數,所以隱藏label
和input
,把相關的label
和input
都用附上id
以便JS
操作
成果預覽
幾乎沒有調整CSS