實現自定義嵌套藍圖
解決Flask原生藍圖無法實現更小范圍的模塊化
方法圖解
創建一個文件,在其中自定義嵌套藍圖,繼承于flask的原生Blueprint,主要實現在register_blueprint方法中
嵌套藍圖
然后在父模塊上使用嵌套藍圖,記得也要把該藍圖在flask的app中注冊
在這里插入圖片描述
最后在子模塊下使用flask的原生藍圖,并把它注冊在嵌套藍圖NestableBlueprint上
在這里插入圖片描述
這樣,url訪問的格式就是這樣:http://xxx.xxx.xxx:xxxx/api/v1/team/xxx
父藍圖的“/api/v1”和子藍圖的“/team”,都在1圖的重寫方法中實現了拼接
最后
我是應用在flask-restful框架中,而在api開發中也可以選擇flask-restplus,也實現了更小的模塊化的功能namespace,自帶swagger,但我個人覺得有挺多坑的,折騰一段時間還是換回了flask-restful
該技巧出自于flask issue中關于嵌套藍圖的討論@teozkr ,感謝他的分享,
github討論地址:https://github.com/pallets/flask/issues/593