Simple and extensible admin interface framework for Flask
The project was recently moved into its own organization. Please update your references to email@example.com:flask-admin/flask-admin.git.
Flask-Admin is a batteries-included, simple-to-use Flask extension that lets you add admin interfaces to Flask applications. It is inspired by the django-admin package, but implemented in such a way that the developer has total control of the look, feel and functionality of the resulting application.
Out-of-the-box, Flask-Admin plays nicely with various ORM’s, including
It also boasts a simple file management interface and a redis client console.
The biggest feature of Flask-Admin is flexibility. It aims to provide a set of simple tools that can be used for building admin interfaces of any complexity. So, to start off with you can create a very simple application in no time, with auto-generated CRUD-views for each of your models. But then you can go further and customize those views & forms as the need arises.
Flask-Admin is an active project, well-tested and production ready.
Several usage examples are included in the /examples folder. Please add your own, or improve on the existing examples, and submit a pull-request.
To run the examples in your local environment:
1. Clone the repository:: git clone https://github.com/flask-admin/flask-admin.git cd flask-admin 2. Create and activate a virtual environment:: virtualenv env -p python3 source env/bin/activate 3. Install requirements:: pip install -r examples/sqla/requirements.txt 4. Run the application:: python examples/sqla/run_server.py
Flask-Admin is extensively documented, you can find all of the documentation at https://flask-admin.readthedocs.io/en/latest/.
The docs are auto-generated from the .rst files in the /doc folder. So if you come across any errors, or if you think of anything else that should be included, then please make the changes and submit them as a pull-request.
To build the docs in your local environment, from the project directory:
tox -e docs-html
And if you want to preview any .rst snippets that you may want to contribute, go to http://rst.ninjs.org/.
To install Flask-Admin, simply:
pip install flask-admin
Or alternatively, you can download the repository and install manually by doing:
git clone firstname.lastname@example.org:flask-admin/flask-admin.git cd flask-admin python setup.py install
Test are run with pytest. If you are not familiar with this package you can get some more info from their website.
To run the tests, from the project directory, simply:
pip install -r requirements-dev.txt pytest
You should see output similar to:
............................................. ---------------------------------------------------------------------- Ran 102 tests in 13.132s OK
For all the tests to pass successfully, you’ll need Postgres & MongoDB to be running locally. For Postgres:
> psql postgres CREATE DATABASE flask_admin_test; \q > psql flask_admin_test CREATE EXTENSION postgis; CREATE EXTENSION hstore;
You can also run the tests on multiple environments using tox.
3rd Party Stuff
If you want to localize your application, install the Flask-BabelEx package.
You can help improve Flask-Admin’s translations through Crowdin: https://crowdin.com/project/flask-admin
Dropped Python 2 support
WTForms 3.0 support
SQLAlchemy 1.4.5+ compatibility fixes
Redis CLI fixes
Bootstrap 4 support!
Added hook for custom SQLAlchemy models initializers
SQLAlchemy 1.4/2.0 compatibility fix
SQLAlchemy 1.3.6 compatibility fix
Python 3.8 support
Werkzeug 1.0 compatibility fix
Use fa-circle-o icon for unchecked booleans
A few SQLAlchemy-related bug fixes
Fix display of inline x-editable boolean fields on list view
Add support for several SQLAlchemy-Utils data types
Support searching on SQLAlchemy hybrid properties
Extra URL paramaters are now propagated to the next page when searching / filtering
Add enum34 dependency when running on legacy Python version
Update Mapbox API v1 URL format
Update jQuery and moment dependencies in templates
Fixed a datepicker issue, where only dates up to 2015 were showing up
Updated Pillow dependency version
Fixed XSS vulnerability
Support nested categories in the navbar menu
sort on multiple columns with column_default_sort
sort on related models in column_sortable_list
show searchable fields in search input’s placeholder text
fix: inline model forms can now also be used for models with multiple primary keys
support for using mapped column_property
Upgrade Leaflet and Leaflet.draw plugins, used for geoalchemy integration
Specify minimum_input_length for ajax widget
Peewee: support composite keys
MongoEngine: when searching/filtering the input is now regarded as case-insensitive by default
handle special characters in filename
fix a bug with listing directories on Windows
avoid raising an exception when unknown sort parameter is encountered
WTForms 3 support
Fixed XSS vulnerability
Fixed Peewee support
Added detail view column formatters
Updated Flask-Login example to work with the newer version of the library
Various SQLAlchemy-related fixes
Various Windows related fixes for the file admin
Dropped Python 2.6 support
Fixed SQLAlchemy >= 1.2 compatibility
Fixed Pewee 3.0 compatibility
Fixed max year for a combo date inline editor
Lots of small bug fixes
Fixed CSRF generation logic for multi-process deployments
Added WTForms >= 3.0 support
Flask-Admin would not recursively save inline models, allowing arbitrary nesting
Added configuration properties that allow injection of additional CSS and JS dependencies into templates without overriding them
SQLAlchemy backend - Updated hybrid property detection using new SQLAlchemy APIs - Added support for association proxies - Added support for remote hybrid properties filters - Added support for ARRAY column type
MongoEngine backend is now properly formats model labels
Improved Google App Engine support: - Added TextProperty, KeyProperty and SelectField support - Added support for form_args, excluded_columns, page_size and after_model_update
Fixed URL generation with localized named filters
FileAdmin has Bootstrap 2 support now
Geoalchemy fixes - Use Google Places (by default) for place search
Small bug fix release. Fixes regression that prevented usage of “virtual” columns with a custom formatter.
Official Python 3.5 support
Customizable row actions
Tablib support (exporting to XLS, XLSX, CSV, etc)
Updated external dependencies (jQuery, x-editable, etc)
Added settings that allows exceptions to be raised on view errors
Updated and reworked documentation
FileAdmin went through minor refactoring and now supports remote file systems. Comes with the new, optional, AWS S3 file management interface
Configurable CSV export for model views
Added overridable URL generation logic. Allows using custom URLs with parameters for administrative views
Added column_display_actions to ModelView control visibility of the action column without overriding the template
Added support for the latest MongoEngine
New SecureForm base class for easier CSRF validation
Lots of translation-related fixes and updated translations
New feature: Edit models in the list view in a popup
New feature: Read-only model details view
Fixed XSS in column_editable_list values
Improved navigation consistency in model create and edit views
Ability to choose page size in model list view
Updated client-side dependencies (jQuery, Select2, etc)
Updated documentation and examples
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.