Быстрая, красивая и расширяемая среда административного интерфейса для приложений Starlette и FastApi.
FastAPI стал популярной веб-инфраструктурой для создания API на Python. Однако ему не хватает зрелого решения для интерфейса администратора, такого как Flask-Admin, для быстрого управления вашими данными через удобный интерфейс. Хотя такие решения, как Sqladmin и Fastapi-Admin, существуют, они работают только с определенными ORM, такими как SQLAlchemy и Tortoise ORM.
Starlette-admin родился из-за необходимости в интерфейсе администратора FastAPI, который работает с различными уровнями данных. Его цель — предоставить комплексное решение для интерфейсов CRUD независимо от серверной части базы данных. Starlette-admin готово работать с несколькими ORM/ODM, а также может использоваться с пользовательским уровнем данных.
$ pip install starlette-admin
$ poetry add starlette-admin
Это простой пример с моделью SQLAlchemy.
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 )
Получите доступ к интерфейсу администратора в браузере по адресу http://localhost:8000/admin.
starlette-admin построен на основе других проектов с открытым исходным кодом:
Вклад приветствуется и очень ценится! Прежде чем начать, прочтите наши правила внесения взносов.