中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

基隆市| 四会市| 武城县| 福建省| 武汉市| 唐海县| 新巴尔虎左旗| 安国市| 保定市| 丰台区| 阳山县| 大城县| 德惠市| 罗定市| 乌什县| 瓦房店市| 冕宁县| 东城区| 和林格尔县| 彰化县| 乐东| 富源县| 隆德县| 英超| 台中市| 图木舒克市| 江都市| 日照市| 南雄市| 周宁县| 诸暨市| 大城县| 梧州市| 廊坊市| 北流市| 顺昌县| 霍林郭勒市| 楚雄市| 赣榆县| 宾川县| 白山市|