iT邦幫忙

2023 iThome 鐵人賽

DAY 29
0
AI & Data

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

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

  • 分享至 

  • xImage
  •  

前言

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

關於「Flask-PyMongo」可以參考dcrosta寫的這篇文章

  • Flask-PyMongo 是一個模組,它可以讓您在 Flask 這個 Web 框架中使用 PyMongo 這個模組來連接和操作 MongoDB 這個資料庫。
  • MongoDB 是一個開源的資料庫,它可以儲存靈活的 JSON 格式的文件,而不是關係型資料庫中的資料列。Python 開發者可以把 MongoDB 當作一個持久化的、可搜尋的 Python 字典的儲存庫(事實上,PyMongo 就是用 Python 字典來表示 MongoDB 的文件)。

目標

這次的目標是實作以下內容:

零、設定環境

pip install Flask-PyMongo
pip install Flask-HTTPAuth

關於「Flask-PyMongo」可以參考dcrosta寫的這篇文章

  • Flask-PyMongo 是一個模組,它可以讓您在 Flask 這個 Web 框架中使用 PyMongo 這個模組來連接和操作 MongoDB 這個資料庫。
  • MongoDB 是一個開源的資料庫,它可以儲存靈活的 JSON 格式的文件,而不是關係型資料庫中的資料列。Python 開發者可以把 MongoDB 當作一個持久化的、可搜尋的 Python 字典的儲存庫(事實上,PyMongo 就是用 Python 字典來表示 MongoDB 的文件)。
  • 要使用 Flask-PyMongo,您需要先安裝它$ pip install Flask-PyMongo

app.py

我們可以把程式碼app.py比喻成一個宿舍管理員,他負責以下的工作:

一、引入 Flask 和 PyMongo 套件

這就像是管理員要先準備好一些工具,例如一本筆記本(Flask)和一個資料庫(PyMongo),才能開始工作。

# 引入 Flask 和 PyMongo 套件
from flask import Flask, request, jsonify
from flask_pymongo import PyMongo
from flask_httpauth import HTTPBasicAuth
  • from flask import Flask
    安裝完 Flask-PyMongo之後,要把它加入程式碼中 (dcrosta)

  • import request
    Flask 是透過 request(請求) 這個函數,抓取前端頁面給予的參數,request 需要經過導入模組才能使用 (Willis, 2022)

  • import jsonify
    用到json作為API傳輸資料的格式 (無言小獅子, 2022)

  • Flask-HTTPAuth

    • 是一個簡單的擴充套件,提供了基本(Basic)和摘要(Digest)式的 HTTP 驗證功能,適用於 Flask 的路由(Route)。
    • 安裝:最簡單的安裝方式是透過 pip。
    • 基本驗證範例:請參考文件中更複雜的範例,涉及密碼雜湊(hashing)和自訂驗證回呼函數(callbacks) (Miguel Grinberg)

二、建立 Flask 應用程式

這就像是管理員要先翻開筆記本,才能記錄訪客的資料。

# 建立 Flask 應用程式
app = Flask(__name__)

關於「建立 Flask 應用程式」可以參考 dcrosta 寫的這篇文章中提到:app = Flask(__name__)

三、設定 MongoDB 連線資訊

這就像是管理員要先連接到資料庫,才能存取訪客的資料。

# 設定 MongoDB 連線資訊
app.config["MONGO_URI"] = "mongodb://localhost:27017/dorm"
mongo = PyMongo(app)

關於「建立 Flask 應用程式」可以參考 dcrosta 寫的這篇文章中提到:設定 MongoDB 的連線資訊
(可以使用 mongo.db 這個屬性來存取 MongoDB 中的資料庫。)
app.config["MONGO_URI"] = "mongodb://localhost:27017/myDatabase"
mongo = PyMongo(app)

下集預告

下次會實作以下內容:


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

尚未有邦友留言

立即登入留言