Starlette Admin Litestar Plugin
A plugin that integrates Starlette Admin with Litestar, providing a powerful and flexible admin interface for your Litestar applications.
This project is inspired by and based on SQLAdmin Litestar Plugin by Peter Schutt.
Features
- Seamless integration with Starlette Admin
- Support for both sync and async SQLAlchemy engines
- Advanced Alchemy integration with UUID7 support
- Customizable admin interface
- Authentication support
- I18n support
Installation
pip install starlette-admin-litestar-plugin
Basic Usage
from litestar import Litestar
from sqlalchemy.ext.asyncio import AsyncEngine, create_async_engine
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
from starlette_admin.contrib.sqla import ModelView
from starlette_admin_litestar_plugin import StarlettAdminPluginConfig, StarletteAdminPlugin
# Create engine and models
engine = create_async_engine("sqlite+aiosqlite:///:memory:")
class Base(DeclarativeBase):
pass
class Product(Base):
__tablename__ = "products"
id: Mapped[int] = mapped_column(primary_key=True)
name: Mapped[str]
price: Mapped[int]
# Configure admin
admin_config = StarlettAdminPluginConfig(
views=[ModelView(Product)],
engine=engine,
title="My Admin",
)
# Create app
app = Litestar(
plugins=[StarletteAdminPlugin(starlette_admin_config=admin_config)]
)
Advanced Alchemy Support! Usage with UUID7 Models
from advanced_alchemy.base import UUIDv7AuditBase
from pydantic import BaseModel, Field
from starlette_admin_litestar_plugin.ext.advanced_alchemy import UUIDModelView
# Define model with UUID and audit
class Product(UUIDv7AuditBase):
__tablename__ = "products"
name: Mapped[str]
price: Mapped[int]
# Optional: Add validation
class ProductInput(BaseModel):
name: str = Field(..., max_length=100)
price: int = Field(..., ge=0)
# Configure admin with UUID support
admin_config = StarlettAdminPluginConfig(
views=[UUIDModelView(Product, pydantic_model=ProductInput)],
engine=engine,
title="Advanced Admin",
)
app = Litestar(
plugins=[StarletteAdminPlugin(starlette_admin_config=admin_config)]
)
See advanced-alchemy repo for more info.
Configuration Options
| Option | Type | Description | Default |
|---|---|---|---|
| views | Sequence[ModelView] | List of admin views | [] |
| engine | Engine | AsyncEngine | SQLAlchemy engine | Required |
| title | str | Admin interface title | "Admin" |
| base_url | str | Base URL path | "/admin" |
| auth_provider | BaseAuthProvider | Authentication provider | None |
| i18n_config | I18nConfig | Internationalization config | None |
For more configuration options and features, please refer to the Starlette Admin documentation.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Metadata
Release files for starlette-admin-litestar-plugin 0.3.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| starlette_admin_litestar_plugin-0.3.2.tar.gz | 7.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| starlette_admin_litestar_plugin-0.3.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.5 kB
Release files / starlette_admin_litestar_plugin-0.3.2.tar.gz
| Download URL | starlette_admin_litestar_plugin-0.3.2.tar.gz |
|---|---|
| Size | 7.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
285c976b133a3e1df2b65abaa3d063f72454f62dd3e979291238e84bdcaeb092
|
|
BLAKE2b-256 checksum How to use checksums |
fef49f735e63abe546e0fd9b42826f5d00a6d53421b5802471b1ca20caa33305
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.9
|
Release files / starlette_admin_litestar_plugin-0.3.2-py3-none-any.whl
| Download URL | starlette_admin_litestar_plugin-0.3.2-py3-none-any.whl |
|---|---|
| Size | 8.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3387a2c5747191ef712c15e91648100b83eb032897780b83236991186f678c9a
|
|
BLAKE2b-256 checksum How to use checksums |
e1191a91870b3836eead3e3124922bf35edcacc0663bb82e75a5eaf7429036e3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.9
|