A powerful and modern admin interface / CMS, powered by Piccolo and ASGI.
Project description
Piccolo Admin
Piccolo Admin is a powerful admin interface / content management system for Python, built on top of Piccolo.
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 (username: piccolo, password: piccolo123).
Local Demo
To run a demo locally, using Python 3.8 or above:
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:
import uvicorn
from movies.endpoints import HomeEndpoint
from movies.tables import Director, Movie
from starlette.routing import Mount, Route, Router
from 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file piccolo_admin-1.9.0.tar.gz
.
File metadata
- Download URL: piccolo_admin-1.9.0.tar.gz
- Upload date:
- Size: 363.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f239a4a377caf6a0eed8faaeb50ccaa7ab96f5020eed1e948abf74366e8e8c17 |
|
MD5 | 8ebb590f5d24e9c5a684a7c3cb730e30 |
|
BLAKE2b-256 | f0d6eb9ea57aaaf9d64f777b8eba1a4da5711053ee240f794a0ef14b64f2fd76 |
File details
Details for the file piccolo_admin-1.9.0-py3-none-any.whl
.
File metadata
- Download URL: piccolo_admin-1.9.0-py3-none-any.whl
- Upload date:
- Size: 366.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 45521033146b5daad9c0d66e59d4d03fcff3c6e7e23d100297b4742e09295631 |
|
MD5 | af7d28b7624f61186269f6cd0e96e269 |
|
BLAKE2b-256 | 17cccdf05c0fe7fafcf5979c747b4b86373b9ad081f8517bd5a10dd44476c473 |