Last active 9 months ago
addaudithook 可用來監聽 Python 內部的安全性相關事件,例如模組導入、檔案存取或執行系統命令,可用於安全監控、日誌記錄或限制不安全的操作。
1 import sys
2
3 def audit_hook(event, args):
4 print(f"Audit event: {event}, Arguments: {args}")
5
6 # 註冊審計鉤子
7 sys.addaudithook(audit_hook)
8
9 # 觸發一些事件
10 open("test.txt", "w").write("Hello") # 檔案寫入事件

timmy / 讀取 .env 環境變數

0 likes
0 forks
1 files
Last active 9 months ago
使用 dotenv 套件從 .env 檔案載入環境變數,適用於配置 API 金鑰、資料庫連線等設定,避免將敏感資訊直接寫入程式碼。
1 import os
2 from pathlib import Path
3 from dotenv import load_dotenv
4
5 BASE_DIR = Path(__file__).resolve().parent
6 ENV_PATH = BASE_DIR.parent / "config" / ".env"
7
8 load_dotenv(ENV_PATH)
9
10 # 讀取環境變數

timmy / Python 字串格式化

0 likes
0 forks
1 files
Last active 9 months ago
Python 提供多種字串格式化方法,f-string(Python 3.6+)更直觀且效能較佳,而 str.format() 適用於較舊版本。這些方法常用於動態組合字串,如建立 URL、日誌輸出或命令構造。
1 url = f"http://localhost:{args.port}"
2
3 url = "http://localhost:{}".format(args.port)
Last active 9 months ago
此程式使用 multiprocessing 啟動 3 個獨立的 Flask 伺服器,分別監聽 5000、5001 和 5002 埠號,讓不同的請求可以並行處理,提高效能,適用於多埠測試或模擬多個 API 服務。
1 from flask import Flask
2 import multiprocessing
3
4 # 建立 Flask 應用程式
5 def create_app(port):
6 app = Flask(__name__)
7
8 @app.route('/')
9 def home():
10 return f"Hello from port {port}!"
Last active 9 months ago
此程式透過 threading.Timer 延遲指定秒數後,自動開啟指定的 URL。適用於自動化測試、提醒功能或延遲啟動特定網頁,確保主程式不中斷的情況下執行非同步操作。
1 import threading
2 import webbrowser
3
4 def open_url(url):
5 """ 開啟指定的 URL """
6 webbrowser.open(url, new=2)
7
8 # 設定延遲時間(秒)
9 delay = 2
10 url = "https://www.example.com"

timmy / Flask 簡單 Web 伺服器

0 likes
0 forks
1 files
Last active 9 months ago
此程式使用 Flask 建立一個簡單的 Web 伺服器,並允許使用命令列指定埠號。預設監聽所有網卡 (0.0.0.0),支援多執行緒處理,提高併發能力,適合作為輕量級 API 或網頁應用的基礎。
1 # 匯入 Flask 框架,用於建立 Web 應用程式
2 from flask import Flask
3 import argparse # 匯入 argparse 來解析命令列參數
4
5 # 建立 Flask 應用程式實例
6 app = Flask(__name__)
7
8 # 定義根路由,當用戶訪問 "/" 時返回 "Hello, Flask!"
9 @app.route('/')
10 def home():

timmy / Flask Google OAuth2 登入

0 likes
0 forks
2 files
Last active 9 months 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 / 進階 Mixin 設計與用戶管理

0 likes
0 forks
1 files
Last active 10 months 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")

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

0 likes
0 forks
1 files
Last active 10 months ago
此 Python 程式使用多個 Mixin,提供日誌紀錄、時間標記、數據儲存與權限管理功能,適用於構建可擴展的用戶管理系統,提升代碼的模組化與可重用性。
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}")