Admin Panels

Libraries for administrative interfaces.

Django saves you from building a Python admin panel: its admin comes built in. Flask-Admin and SQLAdmin add one to Flask and FastAPI apps.

How to choose:

  • A Flask app: Flask-Admin
  • SQLAlchemy models in FastAPI or Starlette: SQLAdmin
  • A Django admin grown into dashboards and internal tools: Unfold
  • A new look for the Django admin, on your stock ModelAdmin classes: Grappelli

Listed in editorial order. Click a column header to re-sort the whole list.

Press / to search. Tags open their category. Click a row for details.

Search and filter

Results

Row number Tags
Simple and extensible administrative interface framework for Flask.
A modern Django admin theme for building dashboards, internal tools, and business applications.
An admin interface for SQLAlchemy models in FastAPI and Starlette.
smithyhq/github.com/smithyhq/sqladmin /2,849 stars /
A jazzy skin for the Django Admin-Interface.

Admin Panels guide

Flask-Admin gives each model a ModelView: one admin.add_view(ModelView(User, db.session)) line gets you list, create, and edit pages for it. To fit a model, subclass ModelView and set class attributes like can_delete or column_list. Expect fewer defaults than in Django's admin: it's up to you to tell Flask-Admin what to display and how. Besides SQLAlchemy, it has backends for Peewee, pymongo, and MongoEngine.

SQLAdmin brings Flask-Admin's approach to SQLAlchemy models on FastAPI or Starlette: Flask-Admin inspired most of its features and configuration. Create an Admin from your app and engine, then write one ModelView subclass per model, declared with model=User, and register it with admin.add_view.

Unfold is a theme for Django's own admin, made for building dashboards, internal tools, and business applications. Put "unfold" before django.contrib.admin in INSTALLED_APPS, then make your admin classes inherit from unfold.admin.ModelAdmin: the stock ModelAdmin leaves forms unstyled.

Grappelli is a jazzy skin for the Django admin that also adds collapsibles, sortable inlines, and related and autocomplete lookups. Put 'grappelli' before django.contrib.admin in INSTALLED_APPS, and include grappelli.urls, which the lookups need. You switch features on with attributes on your admin.ModelAdmin classes, like autocomplete_lookup_fields.

By default, Django's admin lets in only users with is_staff set. Flask-Admin and SQLAdmin leave access control to you: in Flask-Admin, override is_accessible on your views, and SQLAdmin enforces no authentication until you pass it an AuthenticationBackend. Django's docs limit its admin to an internal management tool, and once you need a process-centric interface, they say to write your own views.

Know a project that belongs here?

Tell us what it does and why it stands out.