{"library":"starlette-admin","title":"Starlette Admin","type":"library","description":"Starlette Admin is a fast, beautiful, and extensible administrative interface framework designed for Starlette and FastAPI applications. It provides a robust backend to manage your database models with support for various ORMs like SQLAlchemy, MongoDB (via Motor/Beanie), Odmantic, and Tortoise ORM. The current version is 0.16.0, and it maintains an active release cadence with frequent updates and bug fixes.","language":"python","status":"active","last_verified":"Fri Apr 17","install":{"commands":["pip install starlette-admin","pip install \"starlette-admin[sqla]\"","pip install \"starlette-admin[beanie]\"","pip install \"starlette-admin[full]\""],"cli":null},"imports":["from starlette_admin.app import Admin","from starlette_admin.contrib.sqla import ModelView","from starlette_admin.views import BaseModelView"],"auth":{"required":false,"env_vars":[]},"links":{"homepage":"https://starlette-admin.org","github":"https://github.com/jowilf/starlette-admin","docs":"https://jowilf.github.io/starlette-admin","changelog":"https://jowilf.github.io/starlette-admin/changelog/","pypi":"https://pypi.org/project/starlette-admin/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null},"quickstart":{"code":"import uvicorn\nfrom fastapi import FastAPI\nfrom sqlalchemy import create_engine, Column, Integer, String\nfrom sqlalchemy.orm import declarative_base, sessionmaker\n\nfrom starlette_admin.app import Admin\nfrom starlette_admin.contrib.sqla import ModelView\n\n# 1. Setup Database (SQLAlchemy Example)\nDATABASE_URL = \"sqlite:///./test.db\"\nengine = create_engine(DATABASE_URL, connect_args={\"check_same_thread\": False})\nSessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)\nBase = declarative_base()\n\nclass User(Base):\n    __tablename__ = \"users\"\n    id = Column(Integer, primary_key=True, index=True)\n    name = Column(String)\n    email = Column(String, unique=True, index=True)\n\n# Create tables\nBase.metadata.create_all(bind=engine)\n\n# 2. Setup FastAPI App\napp = FastAPI()\n\n# 3. Setup Starlette Admin\nadmin = Admin(engine, title=\"My Admin Dashboard\")\n\n# Add ModelViews\nadmin.add_view(ModelView(User))\n\n# Mount Admin to FastAPI\nadmin.mount_to(app)\n\n# Optional: Add a root route\n@app.get(\"/\", include_in_schema=False)\nasync def read_root():\n    return {\"message\": \"Welcome to FastAPI with Starlette Admin!\"}\n\nif __name__ == \"__main__\":\n    # Populate some data if needed (run once)\n    with SessionLocal() as db:\n        if not db.query(User).first():\n            db.add(User(name=\"Alice\", email=\"alice@example.com\"))\n            db.add(User(name=\"Bob\", email=\"bob@example.com\"))\n            db.commit()\n    uvicorn.run(app, host=\"0.0.0.0\", port=8000)\n","lang":"python","description":"This quickstart demonstrates how to integrate Starlette Admin with a FastAPI application using SQLAlchemy. It sets up a basic `User` model, initializes the admin interface with a `ModelView` for `User`, and mounts it to the FastAPI app. Ensure you install `starlette-admin[sqla]` and `uvicorn` to run this example.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}