為聊天機器人連結資料庫
Chatbot學習筆記-Day3
--
為Linebot添加PostgreSQL
PostgreSQL是Heroku所提供的資料庫,要將它裝在我們的Linebot上可說是相當容易。
首先登入Heroku後,在"Overview"的地方找到"Configure Add-ons":
點擊之後,可以在"Add-ons"的搜尋欄輸入"PostgreSQL"。
在選擇方案後按下"Submit Order Form"。
因為用量不大,所以選擇免費的"Hobby Dev— Free"方案,而這免費方案呢則有以下限制:
- 最多儲存 10,000 筆資料
- 最大同時連線數量為20筆
- 每個月最多 4 個小時的停機時間
完成後再返回首頁,就可以看到成功掛載Heroku Postgres的圖示囉。
Create Table
要操作資料庫,首先當然要創建一個table來存放資料。psycopg2創建table的語法如下:
- Line 4 : 取得Heroku Database的位置
- Line 7 : 透過"psycopg2"與Database連線
- Line 8 : 創建"cursor"的實例
- Line 11 : 建立table的SQL
- Line 21 : 執行SQL
- Line 22 : 要透過commit SQL才會真正進行
這邊創立了一個名為"test_table"的table,維度分別是id(primary key)、name、weight、height以及date,可以用來儲存基本資料以及紀錄日期。
Insert data
建立完table後肯定需要給它一些資料對吧!那麼,就直接貼上語法:
- Line 6 : 以"tuple"裝入需資料
- Line 8 : 在Database添加資料的SQL
- Line 10 : 執行SQL並給上要匯入的資料為引數
- Line 13 : 計算總共匯入多少筆資料並在下一行印出
一次匯入多筆資料
如果要一次匯入多筆資料,可以使用"executemany"函式,節省時間也更加的有效率。
- Line 6 : 用"list"將多個"tuple"包起
- Line 17 :可以發現原本的'execute"變成"executemany"了,相當直觀。
Select data
要怎麼確認我們有沒有正確的將資料匯入Database呢?
可以透過撰寫SQL,依照條件將資料拿出來看看:
- Line 6 : 查詢資料的SQL
- Line 9 : 將SQL找到的所有資料取出
Update data
如果資料key錯了也不用擔心,我們一樣可以利用SQL來更新資料:
- Line 6 : 更新後的內容
- Line 7 : 被取代的資料
- Line 8 : 將原本的"David"取代為"Danny"
- Line 10 : 將"new"和"origin"兩個引數投入並做更新
看一下結果如何:
Delete data
最後一步就是刪除資料了,用不到的資料無適時刪除也會造成空間浪費,那就來看看刪除的語法是如何吧。
- Line 6 : 刪除"id"大於5的資料
- Line 12 : 計算被刪除的資料筆數
透過"psycopg2"模組操作資料庫的基本語法就練習完畢了,程式碼的部分可以在這邊找到。
明天打算將這些程式碼加入Linebot的app當中,這樣我們的Linebot就能夠更人性化的記住使用者資料並做互動囉。
系列文章
- 【Day1】 打造你的第一隻聊天機器人
- 【Day2】 搜圖助理 — 聊天機器人
- 【Day4】 利用聊天機器人對資料庫下指令吧!
- 【Day5】 讓聊天機器人開啟爬蟲技能!
- 【Day6】 聊天機器人的Quick replies
- 【Day7】 用Flex Messages呈現爬蟲
- 【Day8】 為聊天機器人加上圖文選單