Skip to main content

Starlette Admin Litestar Plugin

Python Litestar uv Ruff Checked with mypy pre-commit

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)

Source distribution for starlette-admin-litestar-plugin 0.3.2
File Size Uploaded
starlette_admin_litestar_plugin-0.3.2.tar.gz 7.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for starlette-admin-litestar-plugin 0.3.2
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.3.2 This release

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page