Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/piccolo-orm/piccolo_admin
A powerful web admin for your database.
https://github.com/piccolo-orm/piccolo_admin
admin asgi asyncio cms content-management-system dashboard database fastapi hacktoberfest piccolo postgresql python python3 sqlite starlette vuejs
Last synced: 2 days ago
JSON representation
A powerful web admin for your database.
- Host: GitHub
- URL: https://github.com/piccolo-orm/piccolo_admin
- Owner: piccolo-orm
- License: mit
- Created: 2019-06-25T19:24:31.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-11-15T06:29:34.000Z (about 2 months ago)
- Last Synced: 2025-01-03T18:02:46.438Z (9 days ago)
- Topics: admin, asgi, asyncio, cms, content-management-system, dashboard, database, fastapi, hacktoberfest, piccolo, postgresql, python, python3, sqlite, starlette, vuejs
- Language: Python
- Homepage: https://piccolo-orm.com/ecosystem/
- Size: 9.15 MB
- Stars: 325
- Watchers: 7
- Forks: 39
- Open Issues: 45
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.rst
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-fastapi - Piccolo Admin - A powerful and modern admin GUI, using the Piccolo ORM. (Third-Party Extensions / Admin)
- awesome-litestar - Piccolo Admin - A powerful and modern admin GUI, using the Piccolo (Third-Party Extensions / Admin)
- awesome-fastapi - :octocat: piccolo_admin :star: 160+ :fork_and_knife: 20+ - A powerful web admin for your database. (Admin)
- awesome-fastapi - Piccolo Admin - A powerful and modern admin GUI, using the Piccolo ORM. (Third-Party Extensions / Admin)
- awesome-pydantic - Piccolo Admin - An admin interface powered by Pydantic. Automatically generate forms using Pydantic models. (Web)
- awesome-pydantic - Piccolo Admin - An admin interface powered by Pydantic. Automatically generate forms using Pydantic models. (Web)
README
![Logo](https://raw.githubusercontent.com/piccolo-orm/piccolo_admin/master/docs/logo_hero.png "Piccolo Admin Logo")
# Piccolo Admin
[![Documentation Status](https://readthedocs.org/projects/piccolo-admin/badge/?version=latest)](https://piccolo-admin.readthedocs.io/en/latest/?badge=latest)
Piccolo Admin is a powerful admin interface / content management system for Python, built on top of Piccolo.
![Screenshot](https://raw.githubusercontent.com/piccolo-orm/piccolo_admin/master/docs/images/screenshot.png "Screenshot")
It was created at a design agency to serve the needs of customers who demand a high quality, beautiful admin interface for their websites. It's a modern alternative to tools like Wordpress and Django Admin.
It's built using the latest technologies, with Vue.js on the front end, and a powerful REST backend.
Some of it's standout features:
* Powerful data filtering
* Builtin security
* Media support, both locally and in S3 compatible services
* Dark mode support
* CSV exports
* Easily create custom forms
* Works on mobile and desktop
* Use standalone, or integrate it easily with ASGI apps like FastAPI, and Starlette
* Multilingual out of box
* Bulk actions, like updating and deleting data
* Flexible UI - only show the columns you want your users to see## Try it
[Try it online](https://demo1.piccolo-orm.com/) (username: piccolo, password: piccolo123).
## Local Demo
To run a demo locally, using Python 3.8 or above:
```bash
pip install piccolo_admin
admin_demo
```And then just launch `localhost:8000` in your browser.
To see what happens behind the scenes, see `piccolo_admin/example/app.py`.
In a few lines of code we are able to:
- Define our models
- Setup a database
- Create a REST API
- Setup a web server and admin interface## ASGI
Since the admin is an ASGI app, you can either run it standalone like in the demo, or integrate it with a larger ASGI app such as FastAPI and Starlette.
For example, using Starlette routes:
```python
import uvicorn
from movies.endpoints import HomeEndpoint
from movies.tables import Director, Movie
from starlette.routing import Mount, Route, Routerfrom piccolo_admin.endpoints import create_admin
# The `allowed_hosts` argument is required when running under HTTPS. It's
# used for additional CSRF defence.
admin = create_admin([Director, Movie], allowed_hosts=["my_site.com"])router = Router(
[
Route(path="/", endpoint=HomeEndpoint),
Mount(path="/admin/", app=admin),
]
)if __name__ == "__main__":
uvicorn.run(router)```
## Full docs
Full documentation is available on [Read the docs](https://piccolo-admin.readthedocs.io/en/latest/).