溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

flask中route裝飾器是什么

發(fā)布時間:2020-08-07 11:05:16 來源:億速云 閱讀:174 作者:小新 欄目:編程語言

小編給大家分享一下flask中route裝飾器是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

flask裝飾器route實現(xiàn)路由功能理解

利用裝飾器的方式實現(xiàn)了路由函數(shù),這是一個十分簡單清晰的結構,而這個功能的實現(xiàn),有著很大的學習意義

@appweb.route('index',methods=['GET','POST']
def static1():
    return render_template('index.html')

看代碼可以知道,通過appweb.route裝飾了static1()函數(shù),使其成為了路由函數(shù)

解析route裝飾器源代碼

def route(self,rule,**options):

    def decorator(f):
        endpoint = options.pop('endpoints',None)
        self.add_url_rule(rule,endpoint,f,**options)
        return f
    return decorator

Flask實例的主要路由功能就是這個route函數(shù),而route函數(shù)源代碼可以看出,是一個3層嵌套的裝飾器(route函數(shù)內部還有個裝飾器)

三層嵌套裝飾器的語法糖規(guī)則

@appweb.route('index',methods=['GET','POST'])
def static1():
    return render_template('index.html')
#等于
static1 = appweb.route('index',methods=['GET','POST'])(static1)

上面的route函數(shù),實際上是返回一個decorator,這個decorator函數(shù)裝飾static1函數(shù)成為路由函數(shù)

route函數(shù)的功能是提供rule參數(shù)和其他的字典鍵對值參數(shù)(**options)

self.add_url_rule是關鍵的函數(shù),它將f參數(shù)(即static1())裝飾成路由函數(shù),最后return f

關于add_url_rule函數(shù),從更深的源碼可知,默認方法為GET,將rule(即'/index')作為網(wǎng)址注冊進了路由,大部分的參數(shù)都在options字典中,目前我已知的參數(shù)有methods=,endpoints=,view_func=等。

以上是flask中route裝飾器是什么的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI