A fast, user friendly ORM and query builder which supports asyncio.
See the code
Piccolo is a fast, user friendly ORM and query builder which supports asyncio. Read the docs.
Some of it’s stand out features are:
The syntax is clean and expressive.
You can use it as a query builder:
# Select:
await Band.select(
Band.name
).where(
Band.popularity > 100
)
# Join:
await Band.select(
Band.name,
Band.manager.name
)
# Delete:
await Band.delete().where(
Band.popularity < 1000
)
# Update:
await Band.update({Band.popularity: 10000}).where(
Band.name == 'Pythonistas'
)
Or like a typical ORM:
# To create a new object:
b = Band(name='C-Sharps', popularity=100)
await b.save()
# To fetch an object from the database, and update it:
b = await Band.objects().get(Band.name == 'Pythonistas')
b.popularity = 10000
await b.save()
# To delete:
await b.remove()
Installing with PostgreSQL driver:
pip install 'piccolo[postgres]'
Installing with SQLite driver:
pip install 'piccolo[sqlite]'
Installing with all optional dependencies (easiest):
pip install 'piccolo[all]'
Let Piccolo scaffold you an ASGI web app, using Piccolo as the ORM:
piccolo asgi new
Starlette, FastAPI, BlackSheep, Litestar, Ravyn, Lilya, Quart, Falcon and Sanic are currently supported.
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:
You can read the docs here.
Utilities for easily exposing Piccolo tables as REST endpoints in ASGI apps, such as Starlette and FastAPI.
Includes a bunch of useful ASGI middleware:
You can read the docs here.
We have a handy page which shows the equivalent of common Django queries in Piccolo.
Our documentation is on Read the docs.
We also have some great tutorial videos on YouTube.
Overall
Maintained
Code review
PyPI
Latest release
Releases this year
826 followers · starred Feb 2022
374 followers · starred Nov 2023
1,129 followers · starred Mar 2023
108 followers · starred Feb 2025
A fast, user friendly ORM and query builder which supports asyncio.
See the code
Piccolo is a fast, user friendly ORM and query builder which supports asyncio. Read the docs.
Some of it’s stand out features are:
The syntax is clean and expressive.
You can use it as a query builder:
# Select:
await Band.select(
Band.name
).where(
Band.popularity > 100
)
# Join:
await Band.select(
Band.name,
Band.manager.name
)
# Delete:
await Band.delete().where(
Band.popularity < 1000
)
# Update:
await Band.update({Band.popularity: 10000}).where(
Band.name == 'Pythonistas'
)
Or like a typical ORM:
# To create a new object:
b = Band(name='C-Sharps', popularity=100)
await b.save()
# To fetch an object from the database, and update it:
b = await Band.objects().get(Band.name == 'Pythonistas')
b.popularity = 10000
await b.save()
# To delete:
await b.remove()
Installing with PostgreSQL driver:
pip install 'piccolo[postgres]'
Installing with SQLite driver:
pip install 'piccolo[sqlite]'
Installing with all optional dependencies (easiest):
pip install 'piccolo[all]'
Let Piccolo scaffold you an ASGI web app, using Piccolo as the ORM:
piccolo asgi new
Starlette, FastAPI, BlackSheep, Litestar, Ravyn, Lilya, Quart, Falcon and Sanic are currently supported.
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:
You can read the docs here.
Utilities for easily exposing Piccolo tables as REST endpoints in ASGI apps, such as Starlette and FastAPI.
Includes a bunch of useful ASGI middleware:
You can read the docs here.
We have a handy page which shows the equivalent of common Django queries in Piccolo.
Our documentation is on Read the docs.
We also have some great tutorial videos on YouTube.
Overall
Maintained
Code review
PyPI
Latest release
Releases this year
826 followers · starred Feb 2022
374 followers · starred Nov 2023
1,129 followers · starred Mar 2023
108 followers · starred Feb 2025