Starlette-Admin is a fast, beautiful and extensible administrative interface framework for Starlette/FastApi applications.
- Check out the documentation.
- Try the live demo. (Source code)
- Try the several usage examples included in the /examples folder
- CRUD any data with ease
- Automatic form validation
- Advanced table widget with Datatables
- Search and filtering
- Search highlighting
- Multi-column ordering
- Export data to CSV/EXCEL/PDF and Browser Print
- Authentication
- Authorization
- Manage Files
- Custom views
- Custom batch actions
- Supported ORMs
- Custom backend (doc, example)
$ pip install starlette-admin
$ poetry add starlette-admin
This is a simple example with SQLAlchemy model
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})
# Define your model
class Post(Base):
__tablename__ = "posts"
id = Column(Integer, primary_key=True)
title = Column(String)
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)
Access your admin interface in your browser at http://localhost:8000/admin
starlette-admin is built with other open source projects:
Thanks for your interest! Contributions are welcome.
Issues, feature requests, questions and bug reports should be reported via the issue tracker above. In particular, because StarletteAdmin aims to be well-documented, please report anything you find confusing or incorrect in the documentation.
Code or documentation improvements in the form of pull requests are also welcome. Please file or comment on an issue to allow for discussion before doing a lot of work, though.
For more details, see the CONTRIBUTING.md file.