Fast, beautiful and extensible administrative interface framework for Starlette/FastApi applications
Project description
starlette-admin
Fast, beautiful, and extensible administrative interface framework for Starlette & FastApi applications
why starlette-admin?
FastAPI has emerged as a popular web framework for building APIs in Python. However, it lacks a mature admin interface solution like Flask-Admin to quickly manage your data through a user-friendly interface. Although solutions like Sqladmin and Fastapi-Admin exist, they only work with specific ORMs such as SQLAlchemy and Tortoise ORM.
Starlette-admin was born from the need for a FastAPI admin interface that works with various data layer. It aims to provide a complete solution for CRUD interfaces regardless of the database backend. Starlette-admin works out of the box with multiple ORM/ODMs and can also be used with a custom data layer.
Getting started
- Check out the documentation.
- Try the live demo. (Source code)
- Follow the tutorials
- Try the several usage examples included in the /examples folder
- If you find this project helpful or interesting, please consider giving it a star ⭐️
Features
- CRUD any data with ease
- Automatic form validation
- Advanced table widget with Datatables
- Search and filtering
- Search highlighting
- Multi-column ordering
- Export data to CSV/EXCEL/PDF and Browser Print
- Authentication
- Authorization
- Manage Files
- Custom views
- Custom batch actions
- Supported ORMs
- SQLAlchemy
- SQLModel
- MongoEngine
- ODMantic
- Custom backend (doc, example)
- Internationalization
Installation
PIP
$ pip install starlette-admin
Poetry
$ poetry add starlette-admin
Example
This is a simple example with SQLAlchemy model
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import Mapped, mapped_column
from starlette.applications import Starlette
from starlette_admin.contrib.sqla import Admin, ModelView
Base = declarative_base()
engine = create_engine("sqlite:///test.db", connect_args={"check_same_thread": False})
# Define your model
class Post(Base):
__tablename__ = "posts"
id: Mapped[int] = mapped_column(primary_key=True)
title: Mapped[str]
Base.metadata.create_all(engine)
app = Starlette() # FastAPI()
# Create admin
admin = Admin(engine, title="Example: SQLAlchemy")
# Add view
admin.add_view(ModelView(Post))
# Mount admin to your app
admin.mount_to(app)
Access your admin interface in your browser at http://localhost:8000/admin
Third party
starlette-admin is built with other open source projects:
Contributing
Contributions are welcome and greatly appreciated! Before getting started, please read our contribution guidelines
Project details
Release history Release notifications | RSS feed
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
File details
Details for the file starlette_admin-0.15.0rc1.tar.gz
.
File metadata
- Download URL: starlette_admin-0.15.0rc1.tar.gz
- Upload date:
- Size: 2.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.27.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 941b930e6a29ef4782ed49ca245f2c179074972eb54ee747ba7adf6e287f6434 |
|
MD5 | cce064e2b14f5337b3a37fc650e7395b |
|
BLAKE2b-256 | f376b5936df1aab99a49f9cfd897981299ad990c9ba10aa1550b989bf6bbb1dd |
File details
Details for the file starlette_admin-0.15.0rc1-py3-none-any.whl
.
File metadata
- Download URL: starlette_admin-0.15.0rc1-py3-none-any.whl
- Upload date:
- Size: 2.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.27.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 603e1737e337ae391bf2fb20baff56555b86e702ff157700ac73c910f51aa583 |
|
MD5 | 129db3142514ac3932721040a747385d |
|
BLAKE2b-256 | 4bbbd53841e3f7f8078c2405d40f85c98d923509c6643f61d6d4c4ca16bcebe7 |