Flask-AppBuilder:一套Flask脚手架,自动生成 CRUD、内置安全权限、各种好用的 UI 组件、报表图表…
什么是 Flask-AppBuilder?说白了,Flask-AppBuilder(简称 FAB)就是在 Flask 基础上,帮你搭好一整套脚手架。自动生成 CRUD、内置安全权限、各种好用的 UI 组件、报表图表……想想不用自己从零写用户登录、权限控制、增删改查,是不是舒服多了?

它解决了哪些痛点?平时开发后台管理系统,总要写一堆样板代码:
-
• 用户认证/授权 -
• 不同角色的权限控制 -
• 根据模型写增删改查视图 -
• 列表页各种过滤、排序、分页 -
• 报表统计图表展示
FAB 一把全包了,你只需定义好模型,基本上几行配置就能搞定整套后台,省时省力,还能借助社区插件扩展各种神奇功能。

核心功能速览
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

动手示例:几行代码搞定 CRUD下面这段代码演示了一个“公司员工管理”后台,只要继承 ModelView、配置好 datamodel,FAB 会帮你生成列表页、表单、详情页、搜索、分页……看着优雅又简洁:
from flask_appbuilder import ModelViewfrom flask_appbuilder.models.sqla.interface import SQLAInterfacefrom flask_appbuilder.fields importQuerySelectFieldfrom flask_appbuilder.fieldwidgets importSelect2Widgetfrom . import appbuilder, dbfrom .models import Department,Employee,EmployeeHistory# 查询部门的函数def department_query(): return db.session.query(Department)# 员工历史记录视图class EmployeeHistoryView(ModelView): datamodel =SQLAInterface(EmployeeHistory) list_columns =["department","begin_date","end_date"]# 员工视图class EmployeeView(ModelView): datamodel =SQLAInterface(Employee) list_columns =["full_name","department.name","employee_number"] edit_form_extra_fields ={ "department":QuerySelectField( "Department", query_func=department_query, widget=Select2Widget(extra_classes="readonly"), ) } related_views =[EmployeeHistoryView] show_template ="appbuilder/general/model/show_cascade.html"# 注册视图db.create_all()appbuilder.add_view(EmployeeView,"员工管理", icon="fa-user", category="公司")appbuilder.add_view(EmployeeHistoryView,"历史记录", icon="fa-history", category="公司")
优缺点对比
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
总结总的来说,Flask-AppBuilder 真的适合那些想要“快速搞定后台管理”,或者项目里后台功能相对固定、业务逻辑不复杂的场景。它省掉了大部分重复造轮子的工作量,让你有更多时间关注核心业务。如果你还在为写一堆 CRUD boilerplate 折腾,不妨试试 FAB,分分钟把你的开发效率提升一个档次!
项目地址:https/github.com/dpgaspar/Flask-AppBuilder
夜雨聆风