1. 程式人生 > >Python學習之路---Flask01(2018-07-24)

Python學習之路---Flask01(2018-07-24)

space args ext 返回值 eight pass 回顧 執行 wrapper

在學習Flask之前我們先來回顧一下裝飾器的知識:

1.簡單的裝飾器,index函數被當做參數直接傳入wrapper函數中,返回值為inner

def wrapper(func):def inner(*args, **kwargs): return func(*args, **kwargs)return inner@wrapper ####### index = wrapper(index)def index(request): pass

2. 帶參數的裝飾器:

def wrapper(option):#{‘k1‘,‘v1‘}def inner(func,*args, **kwargs): return func(*args, **kwargs)return inner#首先執行wrapper函數--> inner = wrapper({‘k1‘,‘v1‘})#再執行@inner函數:@inner -->index = inner(index)@wrapper({‘k1‘,‘v1‘})def index(request): pass

3.路由關系url_map 與裝飾器之間的關系,本質:其實相當於一個閉包函數,裏面的函數能夠使用閉包之後裏面的參數

url_map = { ‘/index‘: index }def route(option): # {‘k1‘:‘v1‘} def inner(func,*args, **kwargs): url_map[option[‘path‘]] = func return inner#先執行route({‘path‘:‘/index‘})函數-->inner = route(option): # {‘k1‘:‘v1‘}#然後再執行@inner 函數--> inner(index,*args, **kwargs):url_map[option[‘index‘]] = index所以就形成了上面的路由關系url_map @route({‘path‘:‘/index‘})def index(request): pass

Python學習之路---Flask01(2018-07-24)