Starlette Admin plugin for LiteStar
Project description
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.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file starlette_admin_litestar_plugin-0.2.1.tar.gz.
File metadata
- Download URL: starlette_admin_litestar_plugin-0.2.1.tar.gz
- Upload date:
- Size: 7.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.30
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36b41c7a04af8854877f3140bcbd8608036da1851e349216210915ac0feae5ae
|
|
| MD5 |
3614c63a30c928b42ea0b5e7b519fc2b
|
|
| BLAKE2b-256 |
bfbc8437e835304006c2fd0bc7573ec26d298c1c84f3dcfa2b88e7420868cea1
|
File details
Details for the file starlette_admin_litestar_plugin-0.2.1-py3-none-any.whl.
File metadata
- Download URL: starlette_admin_litestar_plugin-0.2.1-py3-none-any.whl
- Upload date:
- Size: 8.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.30
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
84270502a4cfcb74350229296fee2b78182c10a599cb4b96dbb89fd4aee6ebdd
|
|
| MD5 |
acc509d05b1e27f53ae7a79ddf614a5c
|
|
| BLAKE2b-256 |
d4f6e114730b8aaf977742ca097d5a07790876671e6eab5cdcc6381cc33b7679
|