您好,登錄后才能下訂單哦!
小編給大家分享一下flask中route裝飾器是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
flask裝飾器route實現路由功能理解
利用裝飾器的方式實現了路由函數,這是一個十分簡單清晰的結構,而這個功能的實現,有著很大的學習意義
@appweb.route('index',methods=['GET','POST'] def static1(): return render_template('index.html')
看代碼可以知道,通過appweb.route裝飾了static1()函數,使其成為了路由函數
解析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函數,而route函數源代碼可以看出,是一個3層嵌套的裝飾器(route函數內部還有個裝飾器)
三層嵌套裝飾器的語法糖規則
@appweb.route('index',methods=['GET','POST']) def static1(): return render_template('index.html') #等于 static1 = appweb.route('index',methods=['GET','POST'])(static1)
上面的route函數,實際上是返回一個decorator,這個decorator函數裝飾static1函數成為路由函數
route函數的功能是提供rule參數和其他的字典鍵對值參數(**options)
self.add_url_rule是關鍵的函數,它將f參數(即static1())裝飾成路由函數,最后return f
關于add_url_rule函數,從更深的源碼可知,默認方法為GET,將rule(即'/index')作為網址注冊進了路由,大部分的參數都在options字典中,目前我已知的參數有methods=,endpoints=,view_func=等。
以上是flask中route裝飾器是什么的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。