Last active 1 year ago
此範例使用 flask_cors 啟用跨來源資源共享 (CORS),允許不同網域的客戶端請求 Flask API,避免瀏覽器的同源政策限制,適用於前後端分離專案。
1 from flask import Flask, jsonify
2 from flask_cors import CORS
3
4 app = Flask(__name__)
5 CORS(app) # 啟用 CORS,允許跨域請求
6
7 @app.route('/api/data')
8 def get_data():
9 return jsonify({"message": "Hello, CORS is enabled!"})

timmy / Flask 啟動腳本 (run_flask.sh)

0 likes
0 forks
1 files
Last active 1 year ago
此腳本使用 env 設定環境變數並啟動 Flask 應用,確保變數僅影響當前指令,避免污染 shell 環境。適用於快速啟動 Flask 伺服器,並允許透過 FLASK_RUN_HOST 對外開放存取。
1 #!/bin/bash
2
3 # 直接使用 env 設定環境變數並執行 Flask
4 env FLASK_APP=app.py FLASK_RUN_PORT=5000 FLASK_RUN_HOST=0.0.0.0 flask run

timmy / Flask Google OAuth2 登入

0 likes
0 forks
2 files
Last active 1 year ago
使用 Flask 和 Authlib 整合 Google OAuth2,透過 OpenID Connect 進行身份驗證,讓使用者能安全登入應用程式。實作包括 authorize_redirect 及 parse_id_token,確保驗證的完整性與安全性。
1 GOOGLE_CLIENT_ID=你的 Google Client ID
2 GOOGLE_CLIENT_SECRET=你的 Google Client Secret

timmy / Python Mixin 設計模式

0 likes
0 forks
1 files
Last active 1 year ago
Python Mixin 設計模式允許類別透過多重繼承增加功能,如日誌、權限管理、事件驅動、異常處理與審計,提升可維護性與擴展性,適用於模組化應用開發。
1 import datetime
2 import json
3 import threading
4 import traceback
5
6 class LoggingMixin:
7 def __init__(self, log_to_file=False, log_file="app.log", *args, **kwargs):
8 self.log_to_file = log_to_file
9 self.log_file = log_file
10 super().__init__(*args, **kwargs)

timmy / Python Mixin 設計模式

0 likes
0 forks
1 files
Last active 1 year ago
Mixin 讓類別能以組合方式擴展功能,如日誌記錄、時間標記、權限管理、事件驅動等,提高程式的模組化與可維護性。適合用於 Python 物件導向開發。
1 import datetime
2 import json
3 import traceback
4 import threading
5
6 class LoggingMixin:
7 """ 提供日誌功能的 Mixin 類別,可選擇寫入控制台或檔案 """
8
9 def __init__(self, log_to_file=False, log_file="app.log", *args, **kwargs):
10 self.log_to_file = log_to_file

timmy / 進階 Mixin 設計與用戶管理

0 likes
0 forks
1 files
Last active 1 year ago
此 Python 程式使用多個 Mixin,提供日誌記錄、時間標記、資料儲存、權限管理、事件監聽與異常處理功能,使 User 類別具備完整的資料管理與行為追蹤能力,適用於使用者管理與系統監控應用。
1 import datetime
2 import json
3 import traceback
4
5 class LoggingMixin:
6 """ 提供日誌功能的 Mixin 類別 """
7
8 def log(self, message):
9 """ 記錄日誌 """
10 timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
Last active 1 year ago
此 Python 程式透過 LoggingMixin 提供日誌功能,TimestampMixin 管理時間標記,並應用於 User 類別,使其具備自動記錄變更歷史的能力,適用於用戶管理、數據追蹤等應用。
1 import datetime
2
3 class LoggingMixin:
4 """ 提供日誌功能的 Mixin 類別 """
5
6 def log(self, message):
7 """ 簡單的日誌紀錄方法 """
8 timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
9 print(f"[{timestamp}] {self.__class__.__name__}: {message}")

timmy / LoggingMixin 日誌功能擴展

0 likes
0 forks
1 files
Last active 1 year ago
此 Mixin 類別為 Python 類別提供簡單的日誌紀錄功能,可用於追蹤物件的行為變化,適用於擴展任何需要日誌記錄的類別,如用戶管理、系統監控等應用。
1 import datetime
2
3 class LoggingMixin:
4 """ 提供日誌功能的 Mixin 類別 """
5
6 def log(self, message):
7 """ 簡單的日誌紀錄方法 """
8 timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
9 print(f"[{timestamp}] {self.__class__.__name__}: {message}")