This page will show various diagrams about the framework structure.
All class views tree reflect functionality each layer is responsible for a certain goal. You will be essentially using BaseViews, IndexViews and the leafs ModelView, chart views and form views.
Next is a summary explanation for each class:
|BaseView:||Collects all the exposed methods, creates the Flask blueprint and registers the URLs, initializes base permissions.|
|UtilView:||Implements exposes back for special back UI functionality.|
|IndexView:||Special view for rendering the index page.|
|SimpleFormView:||Subclass it to render WTForms.|
|PublicFormView:||Same as SimpleFormView but with public access only.|
|BaseModelView:||Class responsible for an initial datamodel layer, implements search form and filters.|
|BaseChartView:||Basic chart view functionality.|
|Subclass it to render Google charts with group by queries.|
|Subclass it to render Google charts with queries.|
|BaseCRUDView:||Implement base functionality for add, edit, delete, creates all forms.|
|RestCRUDView:||Exposes the JSON REST API for CRUD methods and more.|
|ModelView:||Subclass it to render your views based on models, with complete CRUD UI functionality.|
|Renders a master ModelView and multiple detail ModelViews thar are database related.|
|MultipleView:||Renders multiple views on the same page (ex: ModelView and GroupByChartView)|
All classes for data access aim for abstracting the backend.
|BaseInterface:||Interface class, imposes a unique API layer for data access.|
|SQLAInterface:||Data access for SQLAlchemy.|
|Data access for MongoEngine (MongoDB).|
|Data access for custom data structures.|
Classes that are involved in implementing security. Register security views, implement various methods of authentication manage permissions (insert/remove all permission on the backend).
|BaseManager:||Base class for all Manager classes, holds AppBuilder class.|
|Abstract class for Security managers, defines the must have methods.|
|Base class for security, registers security views, implements authentication, inserts/removes all permission on the database, manages roles/users and views.|
|Implements BaseSecurityManager for SQAlchemy.|
|Implements BaseSecurityManager for MongoEngine.|
This is the ERD of the frameworks security models.