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