timmy / 使用 addaudithook 監聽 Python 審計事件
0 likes
0 forks
1 files
Last active 1 year 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 1 year 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 1 year 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) |
timmy / 使用 multiprocessing 啟動多個 Flask 伺服器
0 likes
0 forks
1 files
Last active 1 year ago
| 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}!" |
timmy / 使用 threading.Timer 延遲開啟網頁
0 likes
0 forks
1 files
Last active 1 year 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 / 使用 Streamlit st.session_state 管理可編輯 DataFrame
0 likes
0 forks
1 files
Last active 1 year ago
透過 st.session_state 讓 Streamlit 應用能夠保存並管理可編輯的 DataFrame,避免頁面重整導致資料丟失,適用於數據管理與即時編輯應用。
| 1 | import streamlit as st |
| 2 | import pandas as pd |
| 3 | |
| 4 | def main(): |
| 5 | # 初始化 session_state |
| 6 | if "data" not in st.session_state: |
| 7 | st.session_state.data = pd.DataFrame({ |
| 8 | "ID": [1, 2, 3], |
| 9 | "Name": ["Alice", "Bob", "Charlie"], |
| 10 | "Age": [25, 30, 35], |
timmy / 使用 Python 開啟網頁 (open_browser.py)
0 likes
0 forks
1 files
Last active 1 year ago
此範例使用 webbrowser 模組在系統的預設瀏覽器中開啟指定網址,適用於自動化 Web 存取、快速開啟文件或 Web 應用程式。
| 1 | import webbrowser |
| 2 | |
| 3 | # 指定要開啟的網址 |
| 4 | url = "https://www.python.org" |
| 5 | |
| 6 | # 在預設瀏覽器中開啟網址 |
| 7 | webbrowser.open(url) |
timmy / Flask CORS 設定 (flask_cors_example.py)
0 likes
0 forks
1 files
Last active 1 year ago
| 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
| 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 |