# sqladmin **Repository Path**: watching/sqladmin ## Basic Information - **Project Name**: sqladmin - **Description**: FastAPI/Starlette 的后台管理界面。这是一个灵活的 SQLAlchemy 管理后台,采用 Tabler 构建 Web 界面,支持集成到 FastAPI 和 Starlette,实现类似 Django 内置的管理后台功能 - **Primary Language**: Python - **License**: BSD-3-Clause - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-11-30 - **Last Updated**: 2025-04-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
--- # SQLAlchemy Admin for Starlette/FastAPI SQLAdmin is a flexible Admin interface for SQLAlchemy models. Main features include: * [SQLAlchemy](https://github.com/sqlalchemy/sqlalchemy) sync/async engines * [Starlette](https://github.com/encode/starlette) integration * [FastAPI](https://github.com/tiangolo/fastapi) integration * [WTForms](https://github.com/wtforms/wtforms) form building * [SQLModel](https://github.com/tiangolo/sqlmodel) support * UI using [Tabler](https://github.com/tabler/tabler) --- **Documentation**: [https://aminalaee.dev/sqladmin](https://aminalaee.dev/sqladmin) **Source Code**: [https://github.com/aminalaee/sqladmin](https://github.com/aminalaee/sqladmin) **Online Demo**: [Demo](https://sqladmin-demo.aminalaee.dev/admin/) --- ## Installation Install using `pip`: ```shell $ pip install sqladmin ``` This will install the full version of sqladmin with optional dependencies: ```shell $ pip install "sqladmin[full]" ``` --- ## Screenshots
## Quickstart
Let's define an example SQLAlchemy model:
```python
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`:
```python
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`:
```python
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.
## Related projects and inspirations
* [Flask-Admin](https://github.com/flask-admin/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](https://github.com/fastapi-admin/fastapi-admin) Admin interface for FastAPI which works with `TortoiseORM`.
* [Dashboard](https://github.com/encode/dashboard) Admin interface for ASGI frameworks which works with the `orm` package.