欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Flask框架各種常見裝飾器示例

 更新時(shí)間:2018年07月17日 08:39:49   作者:鎧甲巨人  
這篇文章主要介紹了Flask框架各種常見裝飾器,結(jié)合實(shí)例形式簡單分析了flask框架各種常見裝飾器的功能、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了Flask框架各種常見裝飾器。分享給大家供大家參考,具體如下:

效果類似django的process_request的裝飾器

@app.before_request
def before(*args,**kwargs):
  print('請求之前')
  '''
  如果允許通過訪問,可以return None
  該裝飾器裝飾的函數(shù)如果有return其他內(nèi)容則直接結(jié)束訪問,
  效果有點(diǎn)類似django的process_reqeust中間件方法。
  比如通過這個(gè)裝飾器寫登陸驗(yàn)證,判斷其是否有session,沒有則不允許訪問,有則繼續(xù)訪問
  然后通過request.path判斷訪問的函數(shù),如果是登陸(白名單)則通過。
  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是一樣的,必須有返回值,沒有則報(bào)錯(cuò)。
  print('我走了')
  return response

flask中間件裝飾器執(zhí)行順序。

如果多個(gè)app.before_requestapp.after_request,

那么執(zhí)行順序也和django類似,

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

如果在app.before_requestreturn了其他內(nèi)容,請求被攔截,那么不會(huì)執(zhí)行視圖函數(shù),

直接從最后一個(gè)app.after_reqeust倒著開始執(zhí)行所有after_request。

自定義錯(cuò)誤頁面:

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

模板中定制方法:

前端直接調(diào)用后端函數(shù)的裝飾器:

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

相當(dāng)于filter的裝飾器

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

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

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

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

通過重新復(fù)制app.wsgi_app,

重寫這個(gè)類的__call__方法,如上圖,只是增加了兩個(gè)打印,效果同process_request,process_response

更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python入門與進(jìn)階經(jīng)典教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python文件與目錄操作技巧匯總

希望本文所述對大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • python實(shí)現(xiàn)蒙特卡羅方法教程

    python實(shí)現(xiàn)蒙特卡羅方法教程

    在本篇文章里小編給大家分享了關(guān)于python實(shí)現(xiàn)蒙特卡羅方法和知識點(diǎn),有需要的朋友們學(xué)習(xí)下。
    2019-01-01
  • Python爬蟲爬取百度搜索內(nèi)容代碼實(shí)例

    Python爬蟲爬取百度搜索內(nèi)容代碼實(shí)例

    這篇文章主要介紹了Python爬蟲爬取百度搜索內(nèi)容代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Python set集合類型操作總結(jié)

    Python set集合類型操作總結(jié)

    這篇文章主要介紹了Python set集合類型操作總結(jié),本文介紹了一個(gè)小技巧、去重技巧、創(chuàng)建set、set基本操作等內(nèi)容,需要的朋友可以參考下
    2014-11-11
  • Python MySQLdb 使用utf-8 編碼插入中文數(shù)據(jù)問題

    Python MySQLdb 使用utf-8 編碼插入中文數(shù)據(jù)問題

    這篇文章主要介紹了Python MySQLdb 使用utf-8 編碼插入中文數(shù)據(jù)問題,需要的朋友可以參考下
    2018-03-03
  • window7下的python2.7版本和python3.5版本的opencv-python安裝過程

    window7下的python2.7版本和python3.5版本的opencv-python安裝過程

    這篇文章主要介紹了window7下的python2.7版本和python3.5版本的opencv-python安裝過程,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Pandas之groupby( )用法筆記小結(jié)

    Pandas之groupby( )用法筆記小結(jié)

    這篇文章主要介紹了Pandas之groupby( )用法筆記小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python合并多個(gè)裝飾器小技巧

    Python合并多個(gè)裝飾器小技巧

    這篇文章主要介紹了Python合并多個(gè)裝飾器小技巧,本文用改寫調(diào)用函數(shù)的方式實(shí)現(xiàn)把多個(gè)裝飾器合并成一行、一個(gè)函數(shù)來調(diào)用,需要的朋友可以參考下
    2015-04-04
  • 給Python入門者的一些編程建議

    給Python入門者的一些編程建議

    這篇文章主要介紹了給Python入門者的一些編程建議,包括對集合初始化和GIL理解等一些需要注意的地方,需要的朋友可以參考下
    2015-06-06
  • Python?不設(shè)計(jì)?do-while?循環(huán)結(jié)構(gòu)的理由

    Python?不設(shè)計(jì)?do-while?循環(huán)結(jié)構(gòu)的理由

    Python作為一種語言不支持do-while循環(huán)。?但是,我們可以采用一種變通方法來模擬do-while循環(huán)?。下面通過本文給大家分享下Python?不設(shè)計(jì)do-while?循環(huán)結(jié)構(gòu)的理由,需要的朋友可以參考下
    2022-01-01
  • python3整數(shù)反轉(zhuǎn)的實(shí)現(xiàn)方法

    python3整數(shù)反轉(zhuǎn)的實(shí)現(xiàn)方法

    這篇文章主要介紹了python3整數(shù)反轉(zhuǎn)的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04

最新評論