Simple and extensible admin interface framework for Starlette/FastApi
Project description
starlette-admin
Starlette-Admin is a simple and extensible admin interface framework for Starlette/FastApi.
The key features are:
- Flexibility : The biggest feature of Starlette-Admin is flexibility. Start with autogenerated CRUD-views of your model and customize those views & forms as the need arises.
- Datatables : Starlette-Admin use Datatables to render list. Main Features included
are:
- Multi-column ordering: Sort data by multiple columns at once.
- Full-text search: Filter results by text search with highlight.
- Search Builder: Filter results by complex query including
AND
andOR
conditions. - Many Export options: Export your data to CSV, PDF, Excel and Browser Print.
- You can easily include any other features you need from datatables. Read Datatables documentation for more information.
- Files Handling : Easily attach files to your model. Thanks to SQLAlchemy-file for SQLAlchemy integration
- Multiple admin : Expose multiple admin interfaces.
- Modern UI using Tabler
This project is inspired by Flask-Admin and the main goal is to provide similar tool for Starlette/FastApi.
Starlette-Admin is designed to work with any ORM but have currently built-in support for:
Documentation: https://jowilf.github.io/starlette-admin
Source Code: https://github.com/jowilf/starlette-admin
Demo Application
starlette-admin-demo is a complete Starlette application that showcases Starlette-Admin features.
click here to check the online version
Installation
PIP
$ pip install starlette-admin
Poetry
$ poetry add starlette-admin
Example
SQLAlchemy integration
from sqlalchemy import Column, Integer, String, create_engine
from sqlalchemy.ext.declarative import declarative_base
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})
class Post(Base):
__tablename__ = "posts"
id = Column(Integer, primary_key=True)
title = Column(String)
class PostView(ModelView, model=Post):
pass
Base.metadata.create_all(engine)
app = Starlette()
admin = Admin(engine)
admin.add_view(PostView)
admin.mount_to(app)
MongoEngine integration
import mongoengine
from mongoengine import connect
from starlette.applications import Starlette
from starlette_admin.contrib.mongoengine import Admin, ModelView
connect("example")
class Post(mongoengine.Document):
title = mongoengine.StringField(min_length=3, required=True)
class PostView(ModelView, document=Post):
pass
app = Starlette()
admin = Admin()
admin.add_view(PostView)
admin.mount_to(app)
Access your admin interface in your browser at http://localhost:8000/admin
Related projects and inspirations
- Flask-Admin: Simple and extensible administrative interface framework for Flask
- FastApi-Admin: A fast admin dashboard based on FastAPI and TortoiseORM.
- sqladmin: SQLAlchemy Admin for FastAPI and Starlette
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
Hashes for starlette_admin-0.3.0.dev3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | e1173e0d58d9ce4c765bf98ddf59c9ad3fc4b1e70888cb81d76a273d0259c2b4 |
|
MD5 | e4f38615190e4949b7346d7822ce30e7 |
|
BLAKE2b-256 | c6823689389c5e17af92db5e0f71c2ed3cedc577786566bc2612d3661a35063b |
Hashes for starlette_admin-0.3.0.dev3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d87e34fa0ff9858434b122404a4926cec0465e83221ff0b89f70ce424e3fc78d |
|
MD5 | 3fed08d8bcbae06591777b2375c53f4b |
|
BLAKE2b-256 | 0d300e6f866eb94dd01e1d4b788cf6b1f5fe164325917c07525cab15c911f45d |