Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/aminalaee/sqladmin
SQLAlchemy Admin for FastAPI and Starlette
https://github.com/aminalaee/sqladmin
admin admin-dashboard asgi asyncio fastapi python sqlalchemy starlette web wsgi
Last synced: 28 days ago
JSON representation
SQLAlchemy Admin for FastAPI and Starlette
- Host: GitHub
- URL: https://github.com/aminalaee/sqladmin
- Owner: aminalaee
- License: bsd-3-clause
- Created: 2021-12-22T10:09:54.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-04-11T06:32:14.000Z (7 months ago)
- Last Synced: 2024-04-11T08:33:38.330Z (7 months ago)
- Topics: admin, admin-dashboard, asgi, asyncio, fastapi, python, sqlalchemy, starlette, web, wsgi
- Language: Python
- Homepage: https://aminalaee.dev/sqladmin/
- Size: 2.33 MB
- Stars: 1,555
- Watchers: 14
- Forks: 162
- Open Issues: 33
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
- awesome-fastapi - SQLAlchemy Admin - Admin Panel for FastAPI/Starlette that works with SQLAlchemy models. (Third-Party Extensions / Admin)
- awesome-fastapi - :octocat: sqladmin :star: 500+ :fork_and_knife: 70+ - SQLAlchemy Admin for FastAPI and Starlette. (Admin)
- awesome-fastapi - SQLAlchemy Admin - Admin Panel for FastAPI/Starlette that works with SQLAlchemy models. (Third-Party Extensions / Admin)
- best-of-web-python - GitHub - 15% open · ⏱️ 15.05.2024): (FastAPI Utilities)
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_baseBase = 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, ModelViewapp = 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 Starletteapp = 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.