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来关联视图

你可能感兴趣的:(flask appbuilder1)