flask appbuilder1

1 視圖

BaseView

BaseView是視圖中的基類,所有的視圖都繼承自它。當我們定義一個繼承自BaseView的子類時,BaseView自動將我們用@exposed修飾的urls注冊為Flask中的藍圖。

我們可以通過BaseView來實現自定義頁面,并添加到菜單上或者通過一個連接來訪問它。這里需要注意,作為路由的方法一定要用@exposed修飾,如果需要保護的路由則需要額外使用@has_access修飾。

現在我們來看一個小例子,通常我們使用F.A.B.框架都使用自動生成的項目結構,這樣我們只需要在app目錄下的views.py文件中修改代碼即可。

fromflask_appbuilderimportAppBuilder, expose, BaseView

fromappimportappbuilder

class MyView(BaseView):

route_base ="/myview"

@expose('/hello/')

def hello(self):

return'Hello World!

'@expose('/message/')

def message(self, msg):

msg ='Hello %s'% (msg)

return msg

appbuilder.add_view_no_menu(MyView())

這里需要注意一點就是在訪問urls的時候,一定要將視圖的名字作為路由的前綴!

add_view和add_link這兩個方法,將在菜單中生成鏈接訪問我們定義的路由

模型視圖

定義數據庫模型 ??

? ? ? ? ? 先 ?在model.py中定義數據庫模型,

定義數據庫視圖? ??

? ? ? ? ? 通過繼承ModelView類可以實現我們自定義的視圖,F.A.B.可以針對我們定義好的數據庫模型生成創建、刪除、更新和顯示的功能。? ? ? ? ? ? ? ? ? ? ? ?


db.create_all()

首先使用db.create_all()根據數據庫模型創建表,然后再將視圖添加到菜單。

related_views來關聯視圖

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,991評論 19 139
  • 22年12月更新:個人網站關停,如果仍舊對舊教程有興趣參考 Github 的markdown內容[https://...
    tangyefei閱讀 35,237評論 22 257
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,556評論 25 708
  • 喜歡不一定非要談戀愛 現在互相擁有還太過幼稚 等自己真正能撐起一片天的時候 能對喜歡的人負責 而不是在空間里留言 ...
    吃很多星閱讀 241評論 8 5
  • 工業機器人是一種裝備有記憶裝置和末端執行裝置的、能夠完成各種移動或工藝來代替人類勞動的通用機器。通常在生產中能代替...
    Jason徐老頭閱讀 2,369評論 2 9