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():
Last active 9 months ago
此範例使用 webbrowser 模組在系統的預設瀏覽器中開啟指定網址,適用於自動化 Web 存取、快速開啟文件或 Web 應用程式。
1 import webbrowser
2
3 # 指定要開啟的網址
4 url = "https://www.python.org"
5
6 # 在預設瀏覽器中開啟網址
7 webbrowser.open(url)
Last active 9 months 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 9 months 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 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 / Python Mixin 設計模式

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