SQLAlchemy Admin for FastAPI and Starlette
See the codeSQLAdmin is a flexible Admin interface for SQLAlchemy models.
Main features include:
Documentation: https://smithyhq.github.io/sqladmin
Source Code: https://github.com/smithyhq/sqladmin
Live Demo: https://sqladmin-demo.vercel.app/admin (Username: superadmin Password: superadmin)
Install using pip:
$ pip install sqladmin
Some features need extra packages, which are grouped into optional extras:
| Extra | Installs | Enables |
|---|---|---|
auth | itsdangerous | Session-backed authentication |
i18n | babel | Internationalization and localization |
full | both of the above | Everything |
$ pip install "sqladmin[auth]"
$ pip install "sqladmin[i18n]"
$ pip install "sqladmin[full]"
Let's define an example SQLAlchemy model:
from sqlalchemy import Column, Integer, String, create_engine
from sqlalchemy.orm import declarative_base
Base = declarative_base()
engine = create_engine(
"sqlite:///example.db",
connect_args={"check_same_thread": False},
)
class User(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True)
name = Column(String)
Base.metadata.create_all(engine) # Create tables
If you want to use SQLAdmin with FastAPI:
from fastapi import FastAPI
from sqladmin import Admin, ModelView
app = FastAPI()
admin = Admin(app, engine)
class UserAdmin(ModelView, model=User):
column_list = [User.id, User.name]
admin.add_view(UserAdmin)
Or if you want to use SQLAdmin with Starlette:
from sqladmin import Admin, ModelView
from starlette.applications import Starlette
app = Starlette()
admin = Admin(app, engine)
class UserAdmin(ModelView, model=User):
column_list = [User.id, User.name]
admin.add_view(UserAdmin)
Now visiting /admin on your browser you can see the SQLAdmin interface.
TortoiseORM.orm package.30,138 followers · starred Oct 2025
32,342 followers · starred Feb 2022
4,002 followers · starred Feb 2022
843 followers · starred Apr 2022
SQLAlchemy Admin for FastAPI and Starlette
See the codeSQLAdmin is a flexible Admin interface for SQLAlchemy models.
Main features include:
Documentation: https://smithyhq.github.io/sqladmin
Source Code: https://github.com/smithyhq/sqladmin
Live Demo: https://sqladmin-demo.vercel.app/admin (Username: superadmin Password: superadmin)
Install using pip:
$ pip install sqladmin
Some features need extra packages, which are grouped into optional extras:
| Extra | Installs | Enables |
|---|---|---|
auth | itsdangerous | Session-backed authentication |
i18n | babel | Internationalization and localization |
full | both of the above | Everything |
$ pip install "sqladmin[auth]"
$ pip install "sqladmin[i18n]"
$ pip install "sqladmin[full]"
Let's define an example SQLAlchemy model:
from sqlalchemy import Column, Integer, String, create_engine
from sqlalchemy.orm import declarative_base
Base = declarative_base()
engine = create_engine(
"sqlite:///example.db",
connect_args={"check_same_thread": False},
)
class User(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True)
name = Column(String)
Base.metadata.create_all(engine) # Create tables
If you want to use SQLAdmin with FastAPI:
from fastapi import FastAPI
from sqladmin import Admin, ModelView
app = FastAPI()
admin = Admin(app, engine)
class UserAdmin(ModelView, model=User):
column_list = [User.id, User.name]
admin.add_view(UserAdmin)
Or if you want to use SQLAdmin with Starlette:
from sqladmin import Admin, ModelView
from starlette.applications import Starlette
app = Starlette()
admin = Admin(app, engine)
class UserAdmin(ModelView, model=User):
column_list = [User.id, User.name]
admin.add_view(UserAdmin)
Now visiting /admin on your browser you can see the SQLAdmin interface.
TortoiseORM.orm package.30,138 followers · starred Oct 2025
32,342 followers · starred Feb 2022
4,002 followers · starred Feb 2022
843 followers · starred Apr 2022