timmy / 通用 Flask API 模板

1 лайк(-ов)
0 форк(-ов)
3 файл(-ов)
Последняя активность 1 year ago
提供一個整合資料庫連線、API 金鑰驗證與基本路由的 Flask 應用程式範本,適合作為 Web API 開發起點。
1 #!/usr/bin/env python
2
3 import os
4 import sys
5 from urllib.parse import quote_plus
6 from datetime import datetime
7
8 from dotenv import load_dotenv
9 from flask import Flask, request, jsonify, g
10 import records

timmy / 使用 dataclass 定義資料類別

0 лайк(-ов)
0 форк(-ов)
4 файл(-ов)
Последняя активность 1 year ago
dataclass 提供簡潔的方式來定義類別,適用於需要 存儲資料、簡化初始化、提升可讀性 的場景,例如 設定管理、數據建模、API 資料結構。
1 from dataclasses import dataclass
2
3 @dataclass
4 class User:
5 name: str
6 age: int
7 email: str
8
9 # 建立實例
10 user = User(name="Tim", age=30, email="tim@example.com")

timmy / 使用 tempfile 建立臨時檔案與目錄

0 лайк(-ов)
0 форк(-ов)
3 файл(-ов)
Последняя активность 1 year ago
tempfile 模組可用於建立臨時檔案或目錄,在程式執行期間存儲暫時資料,並確保在程式結束後自動清理,適用於 測試、快取、臨時儲存 等場景。
1 import tempfile
2 import os
3
4 with tempfile.TemporaryDirectory() as temp_dir:
5 pid = os.getpid() # 取得當前進程 ID
6 temp_file = os.path.join(temp_dir, f"process_{pid}.txt")
7
8 # 建立並寫入臨時檔案
9 with open(temp_file, "w") as f:
10 f.write(f"這是進程 {pid} 的臨時檔案")

timmy / 使用 tqdm 顯示進度條

0 лайк(-ов)
0 форк(-ов)
4 файл(-ов)
Последняя активность 1 year ago
tqdm 是一個輕量級的 Python 進度條庫,可用於迴圈、任務執行過程的可視化,適用於 批次處理、資料處理、下載任務、計算密集型應用 等場景。
1 from tqdm import tqdm
2 import time
3
4 for i in tqdm(range(10), desc="處理中", unit="step"):
5 time.sleep(0.5) # 模擬耗時操作

timmy / 使用 inspect 來獲取函式與類別的詳細資訊

0 лайк(-ов)
0 форк(-ов)
3 файл(-ов)
Последняя активность 1 year ago
inspect 模組允許在執行時動態獲取函式、類別、模組的結構與資訊,適用於 除錯、程式碼分析、自動文件生成、動態調試 等場景。
1 import inspect
2
3 def example_function(a: int, b: str = "default") -> bool:
4 """示範函式,回傳 True 或 False"""
5 return bool(a)
6
7 # 獲取函式參數
8 signature = inspect.signature(example_function)
9 print(f"函式簽名: {signature}")

timmy / 使用 functools 進行函式工具操作

0 лайк(-ов)
0 форк(-ов)
3 файл(-ов)
Последняя активность 1 year ago
functools 模組提供多種函式工具,如記憶化(lru_cache)、部分應用(partial)和函式包裝(wraps),適用於提升效能、簡化回呼函式與裝飾器開發。
1 import functools
2
3 @functools.lru_cache(maxsize=5)
4 def fibonacci(n):
5 """計算費氏數列(具備快取功能)"""
6 if n < 2:
7 return n
8 return fibonacci(n - 1) + fibonacci(n - 2)
9
10 print(fibonacci(10)) # 快速計算

timmy / 使用 ABC 定義抽象類別

0 лайк(-ов)
0 форк(-ов)
1 файл(-ов)
Последняя активность 1 year ago
ABC(Abstract Base Class)允許定義抽象類別,強制子類別實作特定方法,適用於建立統一的介面規範,確保繼承的類別都遵守特定的行為。
1 from abc import ABC, abstractmethod
2
3 # 定義抽象類別
4 class Animal(ABC):
5 @abstractmethod
6 def make_sound(self) -> str:
7 """所有動物都必須實作此方法"""
8 pass
9
10 # 繼承並實作抽象方法

timmy / 使用 ThreadPoolExecutor 進行多執行緒任務管理

0 лайк(-ов)
0 форк(-ов)
1 файл(-ов)
Последняя активность 1 year ago
ThreadPoolExecutor 提供了一種簡單的方式來管理多執行緒,適用於 I/O 密集型任務(如網路請求、檔案處理、資料庫查詢),提高執行效率。
1 from concurrent.futures import ThreadPoolExecutor, as_completed
2 import time
3
4 def task(n):
5 """模擬一個耗時任務"""
6 time.sleep(n)
7 return f"Task {n} completed after {n} seconds"
8
9 # 建立執行緒池
10 with ThreadPoolExecutor(max_workers=3) as executor: