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來關聯視圖