SQLAlchemy Admin for Starlette/FastAPI
SQLAdmin is a flexible Admin interface for SQLAlchemy models.
Main features include:
- SQLAlchemy sync/async engines
- Starlette integration
- FastAPI integration
- WTForms form building
- SQLModel support
- UI usingTabler
Documentation:https://aminalaee.dev/sqladmin
Source Code:https://github.com/aminalaee/sqladmin
Online Demo:Demo
Installation
$pipinstallsqladmin$pipinstallsqladmin[full]
Screenshots
Quickstart
Let's define an example SQLAlchemy model:
fromsqlalchemyimportColumn,Integer,String,create_enginefromsqlalchemy.ormimportdeclarative_baseBase=declarative_base()engine=create_engine("sqlite:///example.db",connect_args={"check_same_thread":False},)classUser(Base):__tablename__="users"id=Column(Integer,primary_key=True)name=Column(String)Base.metadata.create_all(engine)# Create tables
If you want to useSQLAdmin
withFastAPI
:
fromfastapiimportFastAPIfromsqladminimportAdmin,ModelViewapp=FastAPI()admin=Admin(app,engine)classUserAdmin(ModelView,model=User):column_list=[User.id,User.name]admin.add_view(UserAdmin)
Or if you want to useSQLAdmin
withStarlette
:
fromsqladminimportAdmin,ModelViewfromstarlette.applicationsimportStarletteapp=Starlette()admin=Admin(app,engine)classUserAdmin(ModelView,model=User):column_list=[User.id,User.name]admin.add_view(UserAdmin)
Now visiting/admin
on your browser you can see theSQLAdmin
interface.
Related projects and inspirations
- Flask-Admin Admin interface for Flask supporting different database backends and ORMs. This project has inspired SQLAdmin extensively and most of the features and configurations are implemented the same.
- FastAPI-Admin Admin interface for FastAPI which works with
TortoiseORM
. - Dashboard Admin interface for ASGI frameworks which works with the
orm
package.