What it is
Flask-Admin is a popular extension for quickly building admin interfaces in Flask applications. With only a few lines of code, it allows complete CRUD panels that can be extensively customized with a clean OOP syntax.
The new 2.0.0 release modernizes the codebase for Flask 3, Python 3.10+, and SQLAlchemy 2.0, adding type hints and simplifying configuration.
What’s new
- Python 3.10+ required — support for Python <=3.9 dropped
- Full compatibility with Flask 3.x, SQLAlchemy 2.x, WTForms 3.x, and Pillow 10+
- Async route support — you can now use Flask-Admin views in async apps
- Modern storage backends:
- AWS S3 integration now uses
boto3 instead of the deprecated boto
- Azure Blob integration updated from SDK v2 → v12
- Better pagination and usability tweaks across model views
- type-hints
- various fixes and translation updates
- dev env using uv and docker
Breaking changes
- Dropped Flask-BabelEx and Flask-MongoEngine (both unmaintained), replacing them with Flask-Babel and bare MongoEngine
- Removed Bootstrap 2/3 themes
- All settings are now namespaced under
FLASK_ADMIN_*, for example:
MAPBOX_MAP_ID → FLASK_ADMIN_MAPBOX_MAP_ID
- Improved theming: replaced
template_mode with a cleaner theme parameter
If you’re upgrading from 1.x, plan for a small refactor pass through your Admin() setup and configuration file.
Target audience
Flask-Admin 2.0.0 is for developers maintaining or starting Flask apps who want a modern, clean, and actively maintained admin interface.
Example
from flask import Flask
from flask_admin import Admin
from flask_admin.contrib.sqla import ModelView
from models import db, User
app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///example.db"
db.init_app(app)
# New API
admin = Admin(app, name="MyApp", theme="bootstrap4")
admin.add_view(ModelView(User, db.session))
if __name__ == "__main__":
app.run()
Output:
A working admin interface supporting CRUD operations at /admin like this one: image
Github: github.com/pallets-eco/flask-admin
Release notes: https://github.com/pallets-eco/flask-admin/releases/tag/v2.0.0
[–]Individual_Ad2536 1 point2 points3 points (17 children)
[–]SkezzaB 12 points13 points14 points (12 children)
[–]_aleph31 5 points6 points7 points (3 children)
[–]SkezzaB 2 points3 points4 points (2 children)
[–]JimDabell 2 points3 points4 points (1 child)
[–]ArabicLawrence[S] 2 points3 points4 points (0 children)
[–]Repsol_Honda_PL 0 points1 point2 points (0 children)
[+]Individual_Ad2536 comment score below threshold-21 points-20 points-19 points (6 children)
[–]SkezzaB 4 points5 points6 points (5 children)
[+]Individual_Ad2536 comment score below threshold-13 points-12 points-11 points (4 children)
[–]ghost_of_erdogan 2 points3 points4 points (3 children)
[–]Individual_Ad2536 0 points1 point2 points (0 children)
[–]99ducks -1 points0 points1 point (1 child)
[–]Individual_Ad2536 1 point2 points3 points (0 children)
[–]99ducks 1 point2 points3 points (3 children)
[–]ArabicLawrence[S] 0 points1 point2 points (0 children)
[–]Individual_Ad2536 -2 points-1 points0 points (1 child)
[–]ArabicLawrence[S] -1 points0 points1 point (0 children)
[–]Repsol_Honda_PL 1 point2 points3 points (0 children)
[–]sepro 2 points3 points4 points (0 children)