A simple and powerful admin for Piccolo models, using ASGI.
Project description
Piccolo Admin
piccolo_admin provides a simple admin interface on top of Piccolo models.
Demo
To run a demo, using Python 3.7 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.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.
For example, using Starlette routes:
from piccolo_admin.endpoints import AdminRouter
from starlette.routing import Router, Route
import uvicorn
from my_project.tables import Movie, User
from my_project.endpoints import Hello
admin = AdminRouter(Movie, auth_table=User)
router = Router([
Route(path="/", endpoint=Hello),
Mount(path="/admin/", app=admin),
])
if __name__ == '__main__':
uvicorn.run(router)
Contributing
The backend is just vanilla Python.
The front end is built using Vue.js. To make modifications, clone the repo, and cd into the admin_ui
directory.
Install the npm dependencies:
npm install
And then you can launch the admin as follows:
npm run serve
It will auto refresh the UI as you make changes to the source files.
The UI needs an API to interact with - the easiest way to do this is to use the demo app.
admin_demo
# Or alternatively
python -m piccolo_admin.example
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
Hashes for piccolo_admin-0.3.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b55973ac1723a0ee28e0f9b80fbcfa855221a0286f328b75bfe32ea3988d5d40 |
|
MD5 | 593e791cf72c85d426460be67d61c5c4 |
|
BLAKE2b-256 | 5881131abb5e9ead2e391a0dddaccf28e74e148b89823f6095b69dc22ef662d2 |