Estrutura de interface administrativa rápida, bonita e extensível para aplicativos Starlette e FastApi
FastAPI emergiu como uma estrutura web popular para construção de APIs em Python. No entanto, falta uma solução de interface de administração madura como o Flask-Admin para gerenciar rapidamente seus dados por meio de uma interface amigável. Embora existam soluções como Sqladmin e Fastapi-Admin, elas funcionam apenas com ORMs específicos, como SQLAlchemy e Tortoise ORM.
Starlette-admin nasceu da necessidade de uma interface de administração FastAPI que funcionasse com várias camadas de dados. Tem como objetivo fornecer uma solução completa para interfaces CRUD independentemente do backend do banco de dados. Starlette-admin funciona imediatamente com vários ORM/ODMs e também pode ser usado com uma camada de dados personalizada.
$ pip install starlette-admin
$ poetry add starlette-admin
Este é um exemplo simples com o modelo 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 )
Acesse sua interface administrativa em seu navegador em http://localhost:8000/admin
starlette-admin foi desenvolvido com outros projetos de código aberto:
Contribuições são bem-vindas e muito apreciadas! Antes de começar, leia nossas diretrizes de contribuição