亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Flask框架中有哪些常見的裝飾器

發布時間:2021-04-13 17:33:50 來源:億速云 閱讀:220 作者:Leah 欄目:開發技術

本篇文章給大家分享的是有關Flask框架中有哪些常見的裝飾器,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

@app.before_request
def before(*args,**kwargs):
  print('請求之前')
  '''
  如果允許通過訪問,可以return None
  該裝飾器裝飾的函數如果有return其他內容則直接結束訪問,
  效果有點類似django的process_reqeust中間件方法。
  比如通過這個裝飾器寫登陸驗證,判斷其是否有session,沒有則不允許訪問,有則繼續訪問
  然后通過request.path判斷訪問的函數,如果是登陸(白名單)則通過。
  request.url 是完整的url
  request.path是域名后面的url正則
  '''
  if request.path == '/login':
    return None
  user = session.get('user_info')
  if user:
    return None
  return redirect('/login')

類似process_response

@app.after_request
def after(response):
  #效果和process_response是一樣的,必須有返回值,沒有則報錯。
  print('我走了')
  return response

flask中間件裝飾器執行順序。

如果多個app.before_requestapp.after_request

那么執行順序也和django類似,

app.before_request是按照從上而下執行(文件的上下),app.after_request是自下而上執行。

如果在app.before_requestreturn了其他內容,請求被攔截,那么不會執行視圖函數,

直接從最后一個app.after_reqeust倒著開始執行所有after_request

自定義錯誤頁面:

@app.error_handlers(404)
def error_404(arg):
  '''自定義錯誤頁面,根據狀態碼定制'''
  return "404錯誤啦"

模板中定制方法:

前端直接調用后端函數的裝飾器:

@app.template_global()
def xx(a1,a2):
  return a1+a2
'''
這個裝飾器的作用就是,可以在前端直接通過{{ xx(1,2)}}來調用后端的這個函數。
'''

相當于filter的裝飾器

@app.template_filter()
def db(a1,a2,a3):
  return a1+a2+a3
'''
效果和django的Filter相似,前端渲染的時候需要注意寫法
{{ 1|db(2,3)}} 1是第一個參數,后面是2,3參數。
'''

第一次來請求操作的裝飾器:

@app.before_first_request
def first(*args,**kwargs):
  pass
'''
只有第一次請求時候才執行的函數裝飾器
'''

Flask的中間件一般感覺用處不大,不如裝飾器方便

Flask框架中有哪些常見的裝飾器

以上就是Flask框架中有哪些常見的裝飾器,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

铜陵市| 康保县| 饶阳县| 吉水县| 安阳县| 嘉荫县| 赤城县| 康马县| 通榆县| 邯郸市| 雷州市| 彩票| 黄浦区| 吉木乃县| 东丰县| 菏泽市| 勐海县| 柞水县| 洛南县| 昌平区| 布尔津县| 大港区| 洛阳市| 尉氏县| 临安市| 安庆市| 盘锦市| 星座| 那坡县| 丰城市| 连山| 成都市| 台安县| 吉木乃县| 竹溪县| 武川县| 靖西县| 柏乡县| 台江县| 南昌县| 普宁市|