# flask-adminlte **Repository Path**: df_coding/flask-adminlte ## Basic Information - **Project Name**: flask-adminlte - **Description**: 基于flask、adminlte、bootstrap3的一套轻量后台管理系统 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2021-09-29 - **Last Updated**: 2021-09-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Flask AdminLTE Bootstrap [AdminLTE](https://adminlte.io/) template adapted to the flask framework using [flask-admin 1.5.2](https://flask-admin.readthedocs.io/en/latest/) and [flask-security 3.0.0](https://pythonhosted.org/Flask-Security/).\ It helps to develop pretty, easy to use admin panel for backend written in flask. ### Live preview http://adminlte.najdaapps.com/admin/ \ **login:** admin@admin.com \ **password:** admin ### Features - Accounts - login page - register page - reset password page - change password page - gravatar profile images support - Model Views - create/show/edit/delete single record - show list of items - delete selected list of items - export all of records to *.csv file - filters - search - live edit - crud inside modal or single page - Menu - categories - model views - links ### Usage Copy directories `adminlte`, `static`, `templates` to your project. #### Basic configuration ```python from flask import Flask, url_for from flask_security import Security from flask_admin import helpers as admin_helpers from adminlte.admin import AdminLte, admins_store app = Flask(__name__) security = Security(app, admins_store) admin = AdminLte(app, skin = 'green', name = 'FlaskCMS', short_name = "FC", long_name = "FlaskCMS") @security.context_processor def security_context_processor(): return dict( admin_base_template = admin.base_template, admin_view = admin.index_view, h = admin_helpers, get_url = url_for ) ``` #### Add view for your model ```python class DeviceView(BaseAdminView): column_editable_list = ['name', 'type', 'rooted'] column_searchable_list = ['name', 'type', 'rooted'] column_exclude_list = None column_details_exclude_list = None column_filters = ['name', 'type', 'rooted'] can_export = True can_view_details = False can_create = True can_edit = True can_delete = True edit_modal = True create_modal = True details_modal = False admin.add_view(DeviceView(Device, db.session, name = "Devices", menu_icon_value = 'fa-laptop')) ``` #### Add link ```python admin.add_link(FaLink(name='Website', url='http://tomasznajda.com', icon_value = 'fa-globe', target = "_blank")) ``` #### Add category ```python admin.add_view(DeviceView(Device, db.session, name = "Devices", category='Author', menu_icon_value = 'fa-laptop')) admin.add_link(FaLink(name='Website', category='Author', url='http://tomasznajda.com', icon_value = 'fa-globe', target = "_blank")) admin.set_category_icon(name='Author', icon_type = 'fa', icon_value = 'fa-address-card') ``` ### Configuration #### Basic AdminLTE configuration: - `app` -> Flask application object - `name` -> Eg. `FlaskCMS`. Application name. Will be displayed as a page title. Defaults to "Admin" - `short_name` -> Eg. `FC`. Short application name. Will be displayed in the collapsed menu bar. By default will use value of the name property. - `long_name` -> Eg. `FlaskCMS`. Long application name. Will be displayed in the expanded menu bar and above each security form. By default will use value of the name property. - `skin` -> AdminLTE skin color (`blue`, `black`, `puprle`, `green`, `red`, `yellow`, `blue-light`, `black-light`, `purple-light`, `green-light`, `red-light`, `yellow-light`). By default will use `blue`. - `url` -> Base URL - `subdomain` -> Subdomain to use - `index_view` -> Home page view to use. Defaults to `AdminIndexView`. - `translations_path` -> Location of the translation message catalogs. By default will use the translations shipped with Flask-Admin. - `endpoint` -> Base endpoint name for index view. If you use multiple instances of the `Admin` class with a single Flask application, you have to set a unique endpoint name for each instance. - `static_url_path` -> Static URL Path. If provided, this specifies the default path to the static url directory for all its views. Can be overridden in view configuration. - `base_template` -> Override base HTML template for all static views. Defaults to `admin/base.html`. #### ModelViews configuration: - list of columns that can be edited ```python column_editable_list = ['from_user', 'to_user', 'subject', 'content', 'created_at'] ``` - list of columns that should be taken into account during search, if None - search field will be hidden ```python column_searchable_list = ['from_user.first_name', 'from_user.last_name', 'from_user.email', 'to_user.first_name', 'to_user.last_name', 'to_user.email', 'subject', 'content', 'created_at'] ``` - list of columns that should be omitted on the list page, if None - all columns will be shown ```python column_exclude_list = ['created_at'] ``` - list of columns that should be omitted on the details page or modal, if None - all columns will be shown ```python column_details_exclude_list = ['created_at'] ``` - list of columns that can be used as filters, if None - filters button will be hidden. ```python column_filters = ['subject', 'content', 'created_at'] ``` - enabling features ```python can_export = True can_view_details = True can_create = True can_edit = True can_delete = True ``` - modal or page ```python edit_modal = True create_modal = True details_modal = True ``` #### Security configuration: - enable register form ```python SECURITY_REGISTERABLE = True ``` - enable forgot password form ```python SECURITY_RECOVERABLE = True ``` - enable change password form ```python SECURITY_CHANGEABLE = True ```