Skip to content

Flask-Admin Interface

Admin panels are useful for:

  • managing users
  • managing content
  • viewing tables quickly

Django includes admin by default, Flask does not.

Flask-Admin provides a flexible admin UI for Flask apps.

Install

pip install Flask-Admin
pip install Flask-Admin

Minimal setup

from flask_admin import Admin
from flask_admin.contrib.sqla import ModelView
 
admin = Admin(app, name="Admin", template_mode="bootstrap4")
admin.add_view(ModelView(User, db.session))
admin.add_view(ModelView(Post, db.session))
from flask_admin import Admin
from flask_admin.contrib.sqla import ModelView
 
admin = Admin(app, name="Admin", template_mode="bootstrap4")
admin.add_view(ModelView(User, db.session))
admin.add_view(ModelView(Post, db.session))

Security warning

Do not expose admin routes publicly without protection.

Common approaches:

  • restrict to admin users only
  • require login and role checks
  • hide admin behind VPN/internal network

Best practice

Treat admin as a separate feature area:

  • its own blueprint/route prefix
  • strict access control
  • logging/auditing of admin actions

If this helped you, consider buying me a coffee ☕

Buy me a coffee

Was this page helpful?

Let us know how we did