RESTful API 在現代開發中至關重要,它允許不同的系統以高效且可擴展的方式進行通訊。 Python 及其 Flask 框架提供了一種簡單且強大的方法來建立 API。在本指南中,我們將探索如何使用 Flask 建立 RESTful API,涵蓋從基礎知識到 HTTP 用戶端的身份驗證和使用的所有內容。
什麼是 RESTful API?
在開始編寫程式碼之前,了解什麼是 RESTful API 非常重要。 API(應用程式介面)是一組允許一個軟體與另一個軟體通訊的規則。 REST(表達性狀態傳輸) 樣式定義了 API 必須遵循的一組原則:
- 客戶端-伺服器:客戶端(使用API)和伺服器(提供資料)之間的分離。
- 無狀態:客戶端發出的每個請求都必須包含伺服器處理所需的所有資訊。
- 可快取:可以快取 API 回應以提高效能。
- 統一介面:客戶端和伺服器之間的通訊必須以標準化的方式完成,使用 HTTP 方法,例如 GET、POST、PUT 和 DELETE。
使用 Flask 建立 RESTful API
現在我們將建立一個簡單的 API 來管理使用者清單。該 API 將允許您新增、編輯、檢視和刪除使用者。
1.安裝Flask
首先,確保你已經安裝了 Flask。如果沒有,您可以使用 pip 安裝:
pip install Flask
2. 項目結構
我們的專案將具有以下結構:
/api_flask │ ├── app.py └── requirements.txt
3. 配置 Flask
在 app.py 檔案中,我們首先導入必要的函式庫並配置我們的 Flask 應用程式:
from flask import Flask, jsonify, request app = Flask(__name__) # Dados simulados users = [ {'id': 1, 'name': 'Alice', 'email': 'alice@example.com'}, {'id': 2, 'name': 'Bob', 'email': 'bob@example.com'} ]
4. 建立端點
現在,讓我們為查看、新增、更新和刪除使用者建立端點。
4.1.列出使用者的端點
我們將使用GET方法列出所有使用者:
@app.route('/users', methods=['GET']) def get_users(): return jsonify(users), 200
4.2.取得特定用戶的端點
我們將使用 GET 方法和使用者 ID 來取得特定使用者的詳細資訊:
@app.route('/users/<user_id>', methods=['GET']) def get_user(user_id): user = next((user for user in users if user['id'] == user_id), None) if user: return jsonify(user), 200 else: return jsonify({'message': 'User not found'}), 404 </user_id>
4.3.建立新用戶的端點
POST 方法將用於新增使用者。客戶端將以 JSON 格式傳送資料。
@app.route('/users', methods=['POST']) def create_user(): data = request.get_json() new_user = { 'id': len(users) + 1, 'name': data['name'], 'email': data['email'] } users.append(new_user) return jsonify(new_user), 201
4.4.更新用戶的端點
這裡我們使用PUT方法來更新現有使用者的資料:
@app.route('/users/<user_id>', methods=['PUT']) def update_user(user_id): data = request.get_json() user = next((user for user in users if user['id'] == user_id), None) if user: user['name'] = data['name'] user['email'] = data['email'] return jsonify(user), 200 else: return jsonify({'message': 'User not found'}), 404 </user_id>
4.5.刪除用戶的端點
我們使用DELETE方法來刪除使用者:
@app.route('/users/<user_id>', methods=['DELETE']) def delete_user(user_id): global users users = [user for user in users if user['id'] != user_id] return jsonify({'message': 'User deleted'}), 200 </user_id>
5. 運行API
現在,只需執行我們的應用程式:
if __name__ == '__main__': app.run(debug=True)
運行app.py文件,我們的API將在http://127.0.0.1:5000/users可用。
6. 使用 Flask 進行身份驗證
要為我們的 API 添加一層安全性,我們可以使用 JWT(JSON Web 令牌)。使用 JWT,我們可以確保只有經過身份驗證的使用者才能存取某些端點。
6.1.安裝 Flask-JWT-Extend
安裝所需的擴充:
pip install Flask-JWT-Extended
6.2.配置 JWT
更新您的 app.py 檔案以包含 JWT 驗證:
from flask_jwt_extended import JWTManager, create_access_token, jwt_required app.config['JWT_SECRET_KEY'] = 'your-secret-key' # Troque pela sua chave secreta jwt = JWTManager(app) # Login para obter o token @app.route('/login', methods=['POST']) def login(): data = request.get_json() if data['username'] == 'admin' and data['password'] == 'admin': access_token = create_access_token(identity={'username': 'admin'}) return jsonify(access_token=access_token), 200 else: return jsonify({'message': 'Invalid credentials'}), 401 # Exemplo de endpoint protegido @app.route('/protected', methods=['GET']) @jwt_required() def protected(): return jsonify({'message': 'Access granted to protected endpoint'}), 200
現在,當存取 /protected 端點時,需要在請求標頭中傳送 JWT 令牌來驗證使用者身分。
7. 透過 HTTP 用戶端使用 API
要使用 API,我們可以使用 Postman 等工具或 Python 中的 requests 等函式庫。
如何使用請求使用 API 的範例:
import requests # Consumindo o endpoint de listagem de usuários response = requests.get('http://127.0.0.1:5000/users') print(response.json())
結論
使用 Flask 建立 RESTful API 既簡單又靈活。 Flask 提供了一個簡約的框架,可以擴充以包含身份驗證、錯誤處理和其他安全層等功能。透過遵循 REST 原則和良好的開發實踐,可以使用 Python 建立高效且可擴展的 API。
現在您可以使用 Flask 建立自己的 RESTful API,根據您的需求和要求進行自訂。
以上是如何使用 Flask 和 Python 建立 RESTful API的詳細內容。更多資訊請關注PHP中文網其他相關文章!

每天學習Python兩個小時是否足夠?這取決於你的目標和學習方法。 1)制定清晰的學習計劃,2)選擇合適的學習資源和方法,3)動手實踐和復習鞏固,可以在這段時間內逐步掌握Python的基本知識和高級功能。

Python在Web開發中的關鍵應用包括使用Django和Flask框架、API開發、數據分析與可視化、機器學習與AI、以及性能優化。 1.Django和Flask框架:Django適合快速開發複雜應用,Flask適用於小型或高度自定義項目。 2.API開發:使用Flask或DjangoRESTFramework構建RESTfulAPI。 3.數據分析與可視化:利用Python處理數據並通過Web界面展示。 4.機器學習與AI:Python用於構建智能Web應用。 5.性能優化:通過異步編程、緩存和代碼優

Python在開發效率上優於C ,但C 在執行性能上更高。 1.Python的簡潔語法和豐富庫提高開發效率。 2.C 的編譯型特性和硬件控制提升執行性能。選擇時需根據項目需求權衡開發速度與執行效率。

Python在現實世界中的應用包括數據分析、Web開發、人工智能和自動化。 1)在數據分析中,Python使用Pandas和Matplotlib處理和可視化數據。 2)Web開發中,Django和Flask框架簡化了Web應用的創建。 3)人工智能領域,TensorFlow和PyTorch用於構建和訓練模型。 4)自動化方面,Python腳本可用於復製文件等任務。

Python在數據科學、Web開發和自動化腳本領域廣泛應用。 1)在數據科學中,Python通過NumPy、Pandas等庫簡化數據處理和分析。 2)在Web開發中,Django和Flask框架使開發者能快速構建應用。 3)在自動化腳本中,Python的簡潔性和標準庫使其成為理想選擇。

Python的靈活性體現在多範式支持和動態類型系統,易用性則源於語法簡潔和豐富的標準庫。 1.靈活性:支持面向對象、函數式和過程式編程,動態類型系統提高開發效率。 2.易用性:語法接近自然語言,標準庫涵蓋廣泛功能,簡化開發過程。

Python因其簡潔與強大而備受青睞,適用於從初學者到高級開發者的各種需求。其多功能性體現在:1)易學易用,語法簡單;2)豐富的庫和框架,如NumPy、Pandas等;3)跨平台支持,可在多種操作系統上運行;4)適合腳本和自動化任務,提升工作效率。

可以,在每天花費兩個小時的時間內學會Python。 1.制定合理的學習計劃,2.選擇合適的學習資源,3.通過實踐鞏固所學知識,這些步驟能幫助你在短時間內掌握Python。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用