Skip to main content

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.

Test suite Publish Codecov Package version Supported Python versions

Starlette-Admin Promo Image

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 and OR 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

starlette_admin-0.3.0.dev3.tar.gz (1.8 MB view hashes)

Uploaded Source

Built Distribution

starlette_admin-0.3.0.dev3-py3-none-any.whl (1.8 MB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page