在 Flask 的 blueprint 如何讀取 Config ?
在 Flask 的 Blueprint(藍圖)中,不能直接使用 app.config["KEY"],因為 Blueprint 本身不認識 app,但可以透過 current_app.config["KEY"] 來存取設定參數。
1. config.py(設定檔)
import os
class Config:
SECRET_KEY = "my_secret_key"
DATABASE_URL = "sqlite:///mydb.sqlite3"
DEBUG = True
2. app.py(載入設定並註冊 Blueprint)
from flask import Flask
from config import Config
from auth import auth # 匯入 Blueprint
app = Flask(__name__)
app.config.from_object(Config) # 載入設定
# 註冊 Blueprint
app.register_blueprint(auth, url_prefix="/auth")
if __name__ == "__main__":
app.run(debug=True)
3. auth.py(會員功能 Blueprint,存取 Config)
在 Blueprint 內 使用 current_app.config["KEY"] 來存取設定:
from flask import Blueprint, current_app
auth = Blueprint("auth", __name__)
@auth.route("/config")
def show_config():
return {
"secret_key": current_app.config["SECRET_KEY"],
"database_url": current_app.config["DATABASE_URL"],
"debug_mode": current_app.config["DEBUG"],
}
4. 測試 API
啟動 Flask,然後訪問 http://localhost:5000/auth/config
{
"secret_key": "my_secret_key",
"database_url": "sqlite:///mydb.sqlite3",
"debug_mode": true
}
✅ 結論
✅ Flask 的 Blueprint 不能直接存取 app.config,但可以用 current_app.config["KEY"]
✅ current_app 代表當前運行的 Flask 應用程式,適用於 Blueprint 環境
✅ 適用於 Blueprint 的路由、服務、API 讀取 Flask 設定
這樣就能讓 Blueprint 也能靈活存取 Flask 設定!

留言板
歡迎留下建議與分享!希望一起交流!感恩!