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

flask框架中勾子函數(shù)的使用詳解

 更新時(shí)間:2018年08月01日 09:17:34   作者:skaarl  
這篇文章主要介紹了flask框架中勾子函數(shù)的使用詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

在客戶端和服務(wù)器交互的過程中,有些準(zhǔn)備工作或掃尾工作需要處理,比如:

  • 在請(qǐng)求開始時(shí),建立數(shù)據(jù)庫連接;
  • 在請(qǐng)求開始時(shí),根據(jù)需求進(jìn)行權(quán)限校驗(yàn);
  • 在請(qǐng)求結(jié)束時(shí),指定數(shù)據(jù)的交互格式;

為了讓每個(gè)視圖函數(shù)避免編寫重復(fù)功能的代碼,F(xiàn)lask提供了通用設(shè)施的功能,即請(qǐng)求鉤子。

請(qǐng)求鉤子是通過裝飾器的形式實(shí)現(xiàn),F(xiàn)lask支持如下四種請(qǐng)求鉤子:

  • before_first_request
    • 在處理第一個(gè)請(qǐng)求前執(zhí)行
  • before_request
    • 在每次請(qǐng)求前執(zhí)行
    • 如果在某修飾的函數(shù)中返回了一個(gè)響應(yīng),視圖函數(shù)將不再被調(diào)用
  • after_request
    • 如果沒有拋出錯(cuò)誤,在每次請(qǐng)求后執(zhí)行
    • 接受一個(gè)參數(shù):視圖函數(shù)作出的響應(yīng)
    • 在此函數(shù)中可以對(duì)響應(yīng)值在返回之前做最后一步修改處理
    • 需要將參數(shù)中的響應(yīng)在此參數(shù)中進(jìn)行返回
  • teardown_request
    • 在每次請(qǐng)求后執(zhí)行
    • 接受一個(gè)參數(shù):錯(cuò)誤信息,如果有相關(guān)錯(cuò)誤拋出

代碼測(cè)試

from flask import Flask
from flask import abort

app = Flask(__name__)


# 在第一次請(qǐng)求之前調(diào)用,可以在此方法內(nèi)部做一些初始化操作
@app.before_first_request
def before_first_request():
  print("before_first_request")


# 在每一次請(qǐng)求之前調(diào)用,這時(shí)候已經(jīng)有請(qǐng)求了,可能在這個(gè)方法里面做請(qǐng)求的校驗(yàn)
# 如果請(qǐng)求的校驗(yàn)不成功,可以直接在此方法中進(jìn)行響應(yīng),直接return之后那么就不會(huì)執(zhí)行視圖函數(shù)
@app.before_request
def before_request():
  print("before_request")
  # if 請(qǐng)求不符合條件:
  #   return "laowang"


# 在執(zhí)行完視圖函數(shù)之后會(huì)調(diào)用,并且會(huì)把視圖函數(shù)所生成的響應(yīng)傳入,可以在此方法中對(duì)響應(yīng)做最后一步統(tǒng)一的處理
@app.after_request
def after_request(response):
  print("after_request")
  response.headers["Content-Type"] = "application/json"
  return response


# 請(qǐng)每一次請(qǐng)求之后都會(huì)調(diào)用,會(huì)接受一個(gè)參數(shù),參數(shù)是服務(wù)器出現(xiàn)的錯(cuò)誤信息
@app.teardown_request
def teardown_request(e):
  print("teardown_request")


@app.route('/')
def index():
  return 'index'

if __name__ == '__main__':
  app.run(debug=True)

在第1次請(qǐng)求時(shí)的打?。?br /> before_first_request
before_request
after_request
teardown_request

在第2次請(qǐng)求時(shí)的打?。?br /> before_request
after_request
teardown_request

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python中使用Counter進(jìn)行字典創(chuàng)建以及key數(shù)量統(tǒng)計(jì)的方法

    Python中使用Counter進(jìn)行字典創(chuàng)建以及key數(shù)量統(tǒng)計(jì)的方法

    今天小編就為大家分享一篇Python中使用Counter進(jìn)行字典創(chuàng)建以及key數(shù)量統(tǒng)計(jì)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python如何省略括號(hào)方法詳解

    Python如何省略括號(hào)方法詳解

    這篇文章主要介紹了Python如何省略括號(hào)方法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 學(xué)習(xí)python需要有編程基礎(chǔ)嗎

    學(xué)習(xí)python需要有編程基礎(chǔ)嗎

    在本篇文章里小編給大家分享的是一篇關(guān)于學(xué)習(xí)python有哪些必要條件,需要的朋友們可以學(xué)習(xí)下。
    2020-06-06
  • python重要函數(shù)eval多種用法解析

    python重要函數(shù)eval多種用法解析

    這篇文章主要介紹了python重要函數(shù)eval多種用法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • Python實(shí)現(xiàn)的選擇排序算法示例

    Python實(shí)現(xiàn)的選擇排序算法示例

    這篇文章主要介紹了Python實(shí)現(xiàn)的選擇排序算法,結(jié)合實(shí)例形式分析了Python選擇排序的概念、原理及簡單實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-11-11
  • python讀取多類型文件夾中的文檔內(nèi)容

    python讀取多類型文件夾中的文檔內(nèi)容

    無論我們使用哪種編程語言,處理文件對(duì)于每個(gè)程序員都是必不可少的,本文主要介紹了python讀取多類型文件夾中的文檔內(nèi)容,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • django中ImageField的使用詳解

    django中ImageField的使用詳解

    這篇文章主要介紹了django中ImageField的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Python三數(shù)之和的實(shí)現(xiàn)方式

    Python三數(shù)之和的實(shí)現(xiàn)方式

    這篇文章主要介紹了Python三數(shù)之和的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 使用Pandas對(duì)數(shù)據(jù)進(jìn)行篩選和排序的實(shí)現(xiàn)

    使用Pandas對(duì)數(shù)據(jù)進(jìn)行篩選和排序的實(shí)現(xiàn)

    這篇文章主要介紹了使用Pandas對(duì)數(shù)據(jù)進(jìn)行篩選和排序的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • PyQt5+python3+pycharm開發(fā)環(huán)境配置教程

    PyQt5+python3+pycharm開發(fā)環(huán)境配置教程

    這篇文章主要介紹了PyQt5+python3+pycharm開發(fā)環(huán)境配置教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03

最新評(píng)論