標籤:bsp spl path lin turn inner map 執行 hit
在學習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‘]] = funcreturn 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)