Flask中四個(gè)好用的裝飾器
Flask是一個(gè)強(qiáng)大的web框架,在這篇文章中我們將來(lái)總結(jié)一下flask中的幾個(gè)裝飾器,這4個(gè)常用的裝飾器可以增強(qiáng)視圖函數(shù)的功能和行為.
1.route裝飾器
用于將 URL 映射到視圖函數(shù),指定 URL 規(guī)則和請(qǐng)求方法。這個(gè)裝飾器是flask中最常用的裝飾器之一。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello, World!'
2.before_request和after_request裝飾器
在請(qǐng)求處理之前或之后執(zhí)行一些操作,比如設(shè)置全局變量、日志記錄等。比如說(shuō)讀取整個(gè)網(wǎng)站的設(shè)置內(nèi)容,以便在任何頁(yè)面都能獲取到這些信息。
from flask import request
@app.before_request
def before_request_func():
print('Before Request')
@app.after_request
def after_request_func(response):
print('After Request')
return response
3.errorhandler裝飾器
用于處理特定狀態(tài)碼的錯(cuò)誤,比如404 Not Found等。
@app.errorhandler(404)
def page_not_found(e):
return 'Page Not Found', 404
4.login_required裝飾器
用于限制某些視圖函數(shù)需要用戶登錄才能訪問(wèn)。
from flask import g, redirect, url_for
def login_required(view):
@functools.wraps(view)
def wrapped_view(**kwargs):
if g.user is None:
return redirect(url_for('login'))
return view(**kwargs)
return wrapped_view
這些裝飾器可以根據(jù)需求結(jié)合使用,來(lái)增強(qiáng) Flask 應(yīng)用的功能和安全性。