用于Starlette/FastAPI的SQLAlchemy管理界面
SQLAdmin是一个灵活的SQLAlchemy模型管理界面。
主要特性包括:
文档:https://aminalaee.dev/sqladmin
源代码:https://github.com/aminalaee/sqladmin
在线演示:演示
安装
使用pip
安装:
$ pip install sqladmin
这将安装带有可选依赖的完整版sqladmin:
$ pip install "sqladmin[full]"
截图
快速开始
让我们定义一个示例SQLAlchemy模型:
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) # 创建表
如果你想在FastAPI
中使用SQLAdmin
:
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)
或者如果你想在Starlette
中使用SQLAdmin
:
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)
现在在浏览器中访问/admin
,你就可以看到SQLAdmin
界面了。
相关项目和灵感来源
- Flask-Admin Flask的管理界面,支持不同的数据库后端和ORM。这个项目极大地启发了SQLAdmin,大多数功能和配置的实现方式都是相同的。
- FastAPI-Admin FastAPI的管理界面,与
TortoiseORM
配合使用。 - Dashboard ASGI框架的管理界面,与
orm
包配合使用。