Skip to main content

Logo

Tests Release Documentation Status PyPI codecov

Piccolo is a fast, user friendly ORM and query builder which supports asyncio. Read the docs.

Features

Some of it’s stand out features are:

  • Support for sync and async.
  • A builtin playground, which makes learning a breeze.
  • Tab completion support - works great with iPython and VSCode.
  • Batteries included - a User model, authentication, migrations, an admin GUI, and more.
  • Modern Python - fully type annotated.
  • Make your codebase modular and scalable with Piccolo apps (similar to Django apps).

Syntax

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()

Installation

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]'

Building a web app?

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 ecosystem

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
  • Multi-factor Authentication
  • 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 with several supported ASGI frameworks
  • Multilingual out of box
  • Bulk actions, like updating and deleting data
  • Flexible UI - only show the columns you want your users to see

You can read the docs here.

Piccolo API

Utilities for easily exposing Piccolo tables as REST endpoints in ASGI apps, such as Starlette and FastAPI.

Includes a bunch of useful ASGI middleware:

  • Session Auth
  • Token Auth
  • Rate Limiting
  • CSRF
  • Content Security Policy (CSP)
  • And more

You can read the docs here.

Are you a Django user?

We have a handy page which shows the equivalent of common Django queries in Piccolo.

Documentation

Our documentation is on Read the docs.

We also have some great tutorial videos on YouTube.

Metadata

Release files for piccolo 1.39.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for piccolo 1.39.0
File Size Uploaded Provenance Actions
piccolo-1.39.0.tar.gz 316.7 kB Without provenance Details for piccolo-1.39.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for piccolo 1.39.0
File Interpreter ABI Platform Actions
piccolo-1.39.0-py3-none-any.whl Python 3 none any Details for piccolo-1.39.0-py3-none-any.whl

Total release size: 758.4 kB

Release files / piccolo-1.39.0.tar.gz

Download URL piccolo-1.39.0.tar.gz
Size 316.7 kB
Tags Source
SHA-256 checksum
How to use checksums
48a0624a0420a540e0e39cee31a208aedf1bbe308f56c68397285b80e1c43380
BLAKE2b-256 checksum
How to use checksums
aa6fda5e55d42bc5cb1db0a4b3c878bb37dbe4927f0445f1843e7bfb3c905692
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/2.0 readme-renderer/46.0 requests/2.34.2 requests-toolbelt/1.0.0 urllib3/2.8.0 tqdm/4.70.1 importlib-metadata/10.1.0 keyring/25.7.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.13.17

Release files / piccolo-1.39.0-py3-none-any.whl

Download URL piccolo-1.39.0-py3-none-any.whl
Size 441.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fbcd93a02595890f06cc5510b81f5db0e7cd02ee2a0b25c2cbed58596327b9d6
BLAKE2b-256 checksum
How to use checksums
52ba54c1ba5c4e14ac0e3263d46b972044ac2591eb773dad1dac349a6774b741
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/2.0 readme-renderer/46.0 requests/2.34.2 requests-toolbelt/1.0.0 urllib3/2.8.0 tqdm/4.70.1 importlib-metadata/10.1.0 keyring/25.7.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.13.17

Security for piccolo 1.39.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.39.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page