今天帶大家實作
day21
中 mongoDB 第四小節中以python 實作出 會員查詢、新增、更新、刪除的功能實作
day20
帶大家了解測試頁的建立方式與基本的mongoDB資料庫
會以思考實作題的方式讓讀者去了解,當然可以使用的程式碼(
解答)會放在 github中
day21
提到以python 實作出 會員查詢、新增、更新、刪除的功能
day21
提到大約需要四個步驟,如下:
第一步:會員查詢
查詢會員檔中會員是否存在,查詢user_id是否存在,存在才可以進行後續動作,不存在是否進行註冊?
第二步:會員新增
若會員存在 -> 進入第三步,不存在就新增,這邊實現會員新增的功能。
第三步:會員更新
異動檔資料的上傳完成,再將主檔更新儲存。
第四步:會員刪除
直接刪除會員資料。
思考時間: 為何不直接對主檔個人資料更新儲存,而需要另一個異動檔才儲存更新呢?(答案於文末)
小作業:是你要如何設計出程式的架構流程,
day21
中也出過類似的作業題目
情況一:新會員使用 -> 所以必然註冊(新增功能實作)
情況二:舊會員登錄 -> 查詢會員檔會員存在與否(查詢功能實作) -> 確認存在才可以進行異動檔資料的上傳並於異動檔資料上傳完畢,更改主檔設定。
思考時間:產品使用情境的思考,如果是今天要設計一款app產品,是以使用情境思考使用目標對象的使用情境想像。 (參考範例於文末)
上圖,在先前的文章中出現過,而實作的核心流程,就如上圖。
參考連結:da13 文章,前面的文章都有介紹使用方法,請複習。
程式碼放在 github -> day22/day22_ex1
執行day22_ex1,cmd視窗如出現如下圖,並顯示當前資料庫的資料,最後顯示出 資料單筆新增成功。
透過 Robo3T觀看mongoDB的狀況,確實資料已經新增了。
程式碼放在 github -> day22/day22_ex2
下列程式碼,多使用了pprint模組,讓資料顯示斷行,如下圖:
下列是部分程式碼,完整程式碼,請到github下載。
#實作:查詢功能
myquery = {} #要搜尋的資料 空白全部搜尋,填值搜尋特定值。
noquery = {"_id": 0} #要排除的資料
import pprint
for x in mycol.find(myquery,noquery): #使用for印出全部
pprint.pprint(x)
小作業:
1.如果不使用pprint.pprint,單純使用print的結果如何呢?
2.排除資料選項清空,得到的資料如何?
小作業2的參考解答:
#實作:查詢功能
myquery = {} #要搜尋的資料 空白全部搜尋,填值搜尋特定值。
noquery = {} #要排除的資料
import pprint
for x in mycol.find(myquery): #使用for印出全部
pprint.pprint(x)
- 為何不直接對主檔個人資料更新儲存,而需要另一個異動檔才儲存更新呢?
兩個思考點:
1.資料不是單一筆,資料不是即時,資料是不連續的,因此需要有個確認機制,確認資料正確送達,才更新
2.需要存入主檔的資料,需要經過再處理才能歸檔。(例如黑修斯短期進修的智慧心電儀,放入主檔的資料是處理過的數據,並且有些資料是圖形化的。)
- 產品使用情境的思考,如果是今天要設計一款app產品,是以使用情境思考使用目標對象的使用情境想像。
範例:今天有一位小明,是一個20歲的男大學生,使用習慣是先使用app,覺得好用才會註冊,若是還沒體驗到服務,就需要先註冊,會令人感到厭煩。因此在app的功能與體驗設計上ˋ,因此上述痛點,先讓使用者有限量的使用,等到一定程度需要繼續使用服務就必須要註冊才可以使用....等。(讀者也可以上網參考使用情境)
明天會繼續帶大家 實作JS與python tornado 溝通的parse(指令分析)的設計,剩下部分更新、刪除實作。