首頁 > 後端開發 > Python教學 > 最常用的 Flask 裝飾器

最常用的 Flask 裝飾器

Patricia Arquette
發布: 2024-10-17 06:13:02
原創
1009 人瀏覽過

The Top ost Used Flask Decorators

Flask 是用 Python 建立 Web 應用程式的最受歡迎的微框架之一,它的大部分功能來自裝飾器的使用。這些裝飾器可讓您以乾淨且可讀的方式連接框架的功能,而不會使您的程式碼混亂。在這篇文章中,我們將探討五個最常用的 Flask 裝飾器,以及兩個榮譽獎。

1 @app.route()

@app.route() 裝飾器用於定義 Flask 應用程式的 URL 路由。它將 URL 綁定到處理該路由邏輯的 Python 函數。

範例:

@app.route('/')
def home():
返回“歡迎來到主頁!”

這個簡單的範例將根 URL (/) 對應到 home() 函數,向訪客傳回歡迎訊息。

2 @app.before_request()

這個裝飾器在每個請求之前執行一個函數。它非常適合檢查身份驗證、初始化變數或設定資源。

範例:

@app.before_request
def check_authentication():
如果不是 user_is_logged_in():
return "請登入", 401

在這種情況下,函數會在允許使用者繼續操作之前檢查使用者是否已通過身份驗證。

3 @app.after_request()

@app.after_request() 裝飾器允許您在處理請求之後但在將其發送到客戶端之前修改回應。這通常用於新增標頭或記錄回應等任務。

範例:

@app.after_request
def add_security_headers(回應):
response.headers['X-Content-Type-Options'] = 'nosniff'
回回覆

這裡,每個回應都會增加一個安全標頭。

4 @app.errorhandler()

錯誤處理對於任何網路應用程式都至關重要。 @app.errorhandler() 裝飾器可讓您為特定 HTTP 狀態碼定義自訂行為,例如 404 Not Found。

範例:

@app.errorhandler(404)
def page_not_found(e):
return "哎呀!找不到頁面。", 404

每當發生 404 錯誤時,此自訂處理程序都會傳回一則使用者友善的訊息。

5 @app.teardown_request()

@app.teardown_request() 用於在請求後進行清理,確保資料庫連線等資源正確關閉。

範例:

@app.teardown_request
def close_db_connection(異常=無):
db_session.remove()

這裡,即使在請求處理過程中引發異常,資料庫會話也會在每次請求後關閉。

榮譽提名

雖然這些裝飾器並不總是被頻繁使用,但它們在某些情況下非常有用:

@app.before_first_request()

此裝飾器用於在處理第一個請求之前執行函數。它非常適合初始化全域資源,例如資料庫連接或載入配置。

@app.before_first_request
definitialize_db():
db.connect()
@app.context_processor()

如果您需要將變數注入到全域的所有 Jinja2 範本中,請使用 @app.context_processor() 裝飾器。這使得當前用戶或應用程式配置等值在每個模板中​​可用。

@app.context_processor
defject_user():
回傳 dict(current_user=get_current_user())

這樣,current_user就可以在您的所有模板中使用,而無需每次都手動傳遞它。

總結

Flask 的裝飾器可以輕鬆管理 Web 要求的生命週期、自訂行為和擴充功能。了解如何以及何時使用這些常見裝飾器將有助於保持 Flask 程式碼乾淨、可維護且強大。我們錯過了您最喜歡的裝飾師嗎?讓我們知道!

來源

  • Flask API

  • Flask 路由

  • Flask 錯誤處理

  • Flask 請求掛鉤

  • Flask 上下文處理器

  • 首次要求前燒瓶

以上是最常用的 Flask 裝飾器的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板