好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Python Flask請求擴(kuò)展與中間件相關(guān)知識總結(jié)

Python Flask請求擴(kuò)展與中間件相關(guān)知識總結(jié)

熱門標(biāo)簽:打電話機(jī)器人營銷 ai電銷機(jī)器人的優(yōu)勢 地圖標(biāo)注自己和別人標(biāo)注區(qū)別 商家地圖標(biāo)注海報(bào) 孝感營銷電話機(jī)器人效果怎么樣 南陽打電話機(jī)器人 海外網(wǎng)吧地圖標(biāo)注注冊 聊城語音外呼系統(tǒng) 騰訊地圖標(biāo)注沒法顯示

一、請求擴(kuò)展

1.before_request

作用: 類比django中間件中的process_request,在請求到來執(zhí)行路由函數(shù)之前先執(zhí)行. 但是如果有多個(gè)順序是從上往下執(zhí)行.

應(yīng)用: 基于它做用戶登錄認(rèn)證

注意: 如果before_request的返回值不是None的清空下, 返回的而是別的值, 那么后續(xù)的請求都不會(huì)執(zhí)行,本次請求直接返回, 如果定義了after_request那么會(huì)接著它執(zhí)行, 最終本次請求響應(yīng)結(jié)束.

@app.before_request
def process_request(*args,**kwargs):
    if request.path == '/login':
        return None
    user = session.get('user_info')
    if user:
        return None
    return redirect('/login') 

2.after_request

作用: 類比django中間件中的process_response,如果請求沒有出現(xiàn)異常的情況下, 會(huì)在請求返回return之前執(zhí)行. 但是如果有多個(gè)順序是從下往上執(zhí)行.

@app.after_request  # 后執(zhí)行
def process_response1(response):
    print('process_response1 走了')
    return response

@app.after_request  # 先執(zhí)行
def process_response2(response):
    print('process_response2 走了')
    return response

3.before_first_request

作用: 項(xiàng)目啟動(dòng)起來接收到第一次請求時(shí)執(zhí)行.

應(yīng)用: 項(xiàng)目初始化用來保證以后項(xiàng)目只要不重啟就不再繼續(xù)執(zhí)行.

@app.before_first_request
def first():
    print('我的第一次')

4. teardown_request

作用: 在每一個(gè)路由函數(shù)執(zhí)行完畢之后執(zhí)行,即使遇到了異常也會(huì)執(zhí)行. (提示: 返回reutrn沒有任何的效果, 不能控制返回的結(jié)果)

應(yīng)用: 記錄日志

@app.teardown_request  
def ter(e):  # e就是上一個(gè)路由函授執(zhí)行過程中出現(xiàn)被捕獲的異常信息.
    print(e)
    print('我是teardown_request ')

5.errorhandler

作用: 綁定錯(cuò)誤的狀態(tài)碼進(jìn)而可以捕獲服務(wù)器的錯(cuò)誤, 并返回對應(yīng)的錯(cuò)誤頁面.

@app.errorhandler(500)
def error_500(arg):
    return render_template('error.html', message='500錯(cuò)誤')


@app.errorhandler(404)
def error_404(arg):
    return render_template('error.html', message='404錯(cuò)誤')

6.template_global

作用: 全局的標(biāo)簽, 在任意的html頁面中就可以直接使用, 不需要在render_template中傳遞參數(shù)以后才能使用.

@app.template_global()
def sb(a1, a2):
    return a1 + a2

# html頁面中直接使用, 不需要傳遞參數(shù).
{{ sb(1,2) }}

7.template_filter

@app.template_filter()
def db(a1, a2, a3):
    return a1 + a2 + a3

# html頁面中直接使用, 不需要傳遞參數(shù). 其中1傳遞給a1, 2傳遞給a2, 3傳遞給a3. (提示: Django中的過濾器最多只可以傳遞二個(gè)參數(shù))
{{ 1|db(2,3) }}

總結(jié):

1.重點(diǎn)掌握before_requestafter_request

2.注意有多個(gè)的情況,執(zhí)行順序

3.before_request請求攔截后(也就是有return值),response所有都執(zhí)行

二、中間件

class Md(object):
    def __init__(self, old_wsgi_app):
        self.old_wsgi_app = old_wsgi_app

    def __call__(self, environ, start_response):
        print('開始之前')
        ret = self.old_wsgi_app(environ, start_response)
        print('結(jié)束之后')
        return ret


if __name__ == '__main__':
    # 1. 我們發(fā)現(xiàn)當(dāng)執(zhí)行app.run方法的時(shí)候,最終執(zhí)行run_simple,最后執(zhí)行app(),也就是在執(zhí)行app.__call__方法
    # 2. 在__call__里面,執(zhí)行的是self.wsgi_app().那我們希望在執(zhí)行他本身的wsgi之前做點(diǎn)事情。
    # 3. 所以我們先用Md類中__init__,保存之前的wsgi,然后我們用將app.wsgi轉(zhuǎn)化成Md的對象。
    # 4. 那執(zhí)行新的的app.wsgi_app,就是執(zhí)行Md的__call__方法。
    # 5. 最后把原來的wsgi_app替換為自定義的

    app.wsgi_app = Md(app.wsgi_app)
    app.run()

到此這篇關(guān)于Python Flask請求擴(kuò)展與中間件相關(guān)知識總結(jié)的文章就介紹到這了,更多相關(guān)Flask請求擴(kuò)展與中間件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Flask搭建一個(gè)API服務(wù)器的步驟
  • flask框架實(shí)現(xiàn)修改密碼和免密登錄功能
  • 如何使用flask將模型部署為服務(wù)
  • 使用Flask和Django中解決跨域請求問題
  • 使用Django和Flask獲取訪問來源referrer

標(biāo)簽:撫州 揚(yáng)州 六盤水 南寧 聊城 牡丹江 迪慶 楊凌

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python Flask請求擴(kuò)展與中間件相關(guān)知識總結(jié)》,本文關(guān)鍵詞  Python,Flask,請求,擴(kuò)展,與,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python Flask請求擴(kuò)展與中間件相關(guān)知識總結(jié)》相關(guān)的同類信息!
  • 本頁收集關(guān)于Python Flask請求擴(kuò)展與中間件相關(guān)知識總結(jié)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 晚上双人做运动表情包gif| 被3p的极品人妻91久久| 韩国三级特黄60分钟在线播放| 女人与公狍交视频免费| 国产精品综合视频| 缅甸人XXXXX做受大片| 双性ntr| 中文字幕在线观看国产| 搡BBB爽爽爽视频| 男男被飞机杯榨精play| 霸总晚上穿纸尿裤嘘嘘感觉| 无码熟妇人妻av久久久一区二区| ova《乳色吐息》| videos性| 男人捅女人视频| 外国人又粗又大的H文| 国产精品igao视频| 男女gif一进一出抽搐视频在线观看| 人人澡人人爽| 久久制服诱惑| 美女胸罩秘?露出奶头图片| 成年午夜福利片在线观看| 91精品国产欧美一区二区百度云| 太大太长太粗太硬受不了| 成人影院午夜久久影院| 18禁止观看1000免费| 原来的琪琪电影在线看| 精油按摩女大学生| 国产精品亚洲AV农村留守女人| 日韩欧美一线二线三线| yin乱电影| 欧美激情精品久久久久久久久久| 厕所撒尿ass性老妇| 久久AV无码乱码A片无码天美| 短篇强校花高h系列小说| 18?AV黄漫网站耻辱的俘虏| 黄文网| 超碰91青青国产福学生专区利| 九色综合网| 风韵多水老熟妇口爆69式| 欧美在线黄色片|