告别繁琐,SQLAdmin:让你的数据库管理像玩乐高一样简单!

还在为管理数据库而头疼吗?还在为复杂的 SQL 语句而抓狂吗?别担心,救星来了!今天,我们要介绍一个神奇的开源项目——aminalaee/sqladmin,它能让你的数据库管理工作变得像玩乐高一样简单有趣。

一、项目简介

SQLAdmin 是一个为 SQLAlchemy 模型量身定制的灵活管理界面工具。它不仅支持同步和异步的 SQLAlchemy 引擎,还完美集成了 Starlette 和 FastAPI 框架。想象一下,你只需要几行代码,就能拥有一个功能完善、界面美观的数据库管理后台,是不是很酷?

这个项目不仅功能强大,还非常注重用户体验。它使用 WTForms 构建表单,支持 SQLModel,并采用 Tabler 构建用户界面,让你在管理数据库的同时,也能享受到现代化的视觉体验。

二、核心功能

1. 强大的数据库支持

SQLAdmin 的核心在于它对 SQLAlchemy 的完美支持。无论你使用的是同步还是异步引擎,它都能轻松应对。这意味着你可以使用你熟悉的 SQLAlchemy 模型,而无需进行额外的学习成本。

2. 灵活的框架集成

SQLAdmin 不仅是一个独立的工具,它还能无缝集成到 Starlette 和 FastAPI 框架中。这意味着你可以将数据库管理功能轻松添加到你的现有项目中,而无需进行大量的代码修改。

3. 美观的用户界面

SQLAdmin 使用 Tabler 构建用户界面,这意味着你将拥有一个现代、美观、响应式的管理后台。告别那些丑陋的、难以使用的管理界面吧!

4. 简单的表单构建

SQLAdmin 使用 WTForms 构建表单,这意味着你可以轻松创建各种类型的表单,而无需手动编写 HTML 代码。这大大提高了开发效率,让你有更多的时间去享受生活。

5. SQLModel 支持

如果你是 SQLModel 的粉丝,那么 SQLAdmin 绝对是你的不二之选。它完美支持 SQLModel,让你在享受 SQLModel 带来的便利的同时,也能拥有一个强大的管理界面。

三、安装与部署

1. 安装

安装 SQLAdmin 非常简单,只需要使用 pip 即可:

$ pip install sqladmin

如果你需要安装包含可选依赖的完整版本,可以使用以下命令:

$ pip install "sqladmin[full]"

2. 部署

部署 SQLAdmin 也非常简单,只需要将它集成到你的 Starlette 或 FastAPI 应用中即可。下面是一些简单的示例:

FastAPI 集成示例:

from fastapi import FastAPI
from sqladmin import Admin, ModelView
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)  # 创建表

app = FastAPI()
admin = Admin(app, engine)

class UserAdmin(ModelView, model=User):
    column_list = [User.id, User.name]

admin.add_view(UserAdmin)

Starlette 集成示例:

from sqladmin import Admin, ModelView
from starlette.applications import Starlette
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)  # 创建表

app = Starlette()
admin = Admin(app, engine)

class UserAdmin(ModelView, model=User):
    column_list = [User.id, User.name]

admin.add_view(UserAdmin)

四、使用方式

1. 定义模型

首先,你需要定义你的 SQLAlchemy 模型。例如,你可以定义一个 User 模型:

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)  # 创建表

2. 创建管理视图

接下来,你需要创建一个管理视图,将你的模型与 SQLAdmin 连接起来:

from sqladmin import ModelView

class UserAdmin(ModelView, model=User):
    column_list = [User.id, User.name]

3. 添加管理视图

最后,你需要将管理视图添加到 SQLAdmin 实例中:

admin.add_view(UserAdmin)

完成以上步骤后,你就可以通过访问 /admin 路径来访问 SQLAdmin 界面了。

五、灵感来源

SQLAdmin 的设计灵感来源于以下几个优秀的开源项目:

  • Flask-Admin
  • FastAPI-Admin
  • Dashboard

这些项目为 SQLAdmin 的发展提供了宝贵的经验和借鉴。

六、总结

SQLAdmin 是一个功能强大、易于使用、界面美观的数据库管理工具。它能让你告别繁琐的数据库管理工作,让你有更多的时间去享受生活。如果你正在寻找一个优秀的 SQLAlchemy 管理界面,那么 SQLAdmin 绝对是你的不二之选。快来试试吧,相信你一定会爱上它!

原文链接:,转发请注明来源!