在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 套件
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
:
安裝
:最簡單的安裝方式是透過 pip。基本驗證範例
:請參考文件中更複雜的範例,涉及密碼雜湊(hashing)和自訂驗證回呼函數(callbacks) (Miguel Grinberg)。這就像是管理員要先翻開筆記本,才能記錄訪客的資料。
# 建立 Flask 應用程式
app = Flask(__name__)
關於「建立 Flask 應用程式」可以參考 dcrosta 寫的這篇文章中提到:
app = Flask(__name__)
這就像是管理員要先連接到資料庫,才能存取訪客的資料。
# 設定 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)
下次會實作以下內容: