iT邦幫忙

2023 iThome 鐵人賽

DAY 30
1
AI & Data

AIoT的藍藥丸與紅藥丸,你選哪個?系列 第 60

補充:撰寫Flask Web來存取Mongo DB (5)

  • 分享至 

  • xImage
  •  

前言

https://ithelp.ithome.com.tw/upload/images/20230921/20162501fOTR6rcq6I.jpg
Day 29:物聯網幽靈的RESTful API 謎題.芝麻開門中提到:用Flask來建立一個RESTful API,並且要按照「宿舍訪客名單 API 的需求規格」需求規格,用 Flask 跟 PyMongo來實作API,然後用Postman來測試它的功能和效能。
這個程式碼的目的是建立一個宿舍訪客名單的網路服務,讓使用者可以透過網路來查詢、新增、修改或刪除訪客的資料。

回顧

目標

  • 八、啟動 Flask 應用程式,並指定主機和埠號

八、啟動 Flask 應用程式,並指定主機和埠號

# 啟動 Flask 應用程式,並指定主機和埠號
if **name** == "**main**":
app.run(host="192.168.1.100", port=5000)
  • 啟動 Flask 應用程式,並指定主機和埠號
    app.run(host="192.168.1.100", port=5000)
    如果在app.run()的函式中沒有輸入參數,程式將會執行在 Flask 預設使用 port 5000上。
    如果想要更換使用的網路埠,只要在app.run()的函式中,傳入指定 port 的參數即可。

重點整理

  • 使用 Flask 建立一個 Web 應用程式,並定義兩個路由:/visitors 和 /visitors/<id>
  • 使用 PyMongo 套件連接到 MongoDB 資料庫,並操作 visitors 這個集合。
  • 支援四種 HTTP 方法:GET、POST、PUT 和 DELETE,並根據不同的方法執行不同的資料庫操作。
  • 回傳 JSON 格式的資料,並且包含狀態碼和訊息。
  • 檢查請求中的 JSON 資料是否包含所有必要的欄位,如果不完整或無效,則回傳錯誤訊息。
  • 使用 Flask-HTTPAuth 套件實現 Basic Auth 驗證機制,要求請求提供帳號密碼才能存取 API。
  • 指定 Flask 容器的 IP 位址和 PORT 號碼為 192.168.1.100:5000

傳送門

撰寫Flask Web來存取Mongo DB (1)討論如何實作以下內容:

  • 零、設定環境
  • 一、引入 Flask 和 PyMongo 套件
  • 二、建立 Flask 應用程式
  • 三、設定 MongoDB 連線資訊

撰寫Flask Web來存取Mongo DB (2)討論如何實作以下內容:

  • 四、建立 HTTPBasicAuth 物件
  • 五、設定帳號密碼驗證機制
  • 六、定義路由和 HTTP 方法,並使用 auth.login_required 要求驗證

撰寫Flask Web來存取Mongo DB (3)討論如何實作以下內容:

  • 六、定義路由和 HTTP 方法,並用 auth.login_required decorator 要求驗證
    • 6-1 如果是 GET 方法,則取得所有或特定的訪客資料
    • 6-2 如果是 POST 方法,則新增一筆訪客資料

撰寫Flask Web來存取Mongo DB (4)討論如何實作以下內容:

  • 七、定義路由和 HTTP 方法,用變數 id 傳遞參數,並用 auth.login_required decorator 要求驗證
    • 7-1 如果是 PUT 方法,則修改一筆訪客資料
    • 7-2 如果是 DELETE 方法,則刪除一筆訪客資料

撰寫Flask Web來存取Mongo DB (5)討論如何實作以下內容:

  • 八、啟動 Flask 應用程式,並指定主機和埠號

上一篇
補充:撰寫Flask Web來存取Mongo DB (4)
下一篇
Day 30:物聯網幽靈的真相
系列文
AIoT的藍藥丸與紅藥丸,你選哪個?62
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

1
whoami
iT邦新手 1 級 ‧ 2023-10-15 22:19:03

先恭喜完賽啊 😆
寫得很精彩

嗚嗚 太感動了 這30天過得有點太充實... 沒想過自己挑戰成功!
但寫的內容程度跟你比起來差的很遠 還要向你看齊~
謝謝你一直以來都有按讚留言鼓勵 不然我應該撐不下去!

whoami iT邦新手 1 級 ‧ 2023-10-16 09:46:54 檢舉

不會啦 妳能寫這麼豐富的內容 蠻不容易的 👍

我要留言

立即登入留言