A fast, user friendly ORM and query builder which supports asyncio.
Project description
Piccolo
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.
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
).run()
# Join:
await Band.select(
Band.name,
Band.manager.name
).run()
# Delete:
await Band.delete().where(
Band.popularity < 1000
).run()
# Update:
await Band.update({Band.popularity: 10000}).where(
Band.name == 'Pythonistas'
).run()
Or like a typical ORM:
# To create a new object:
b = Band(name='C-Sharps', popularity=100)
await b.save().run()
# To fetch an object from the database, and update it:
b = await Band.objects().where(Band.name == 'Pythonistas').first().run()
b.popularity = 10000
await b.save().run()
# To delete:
await b.remove().run()
Installation
pip install piccolo
Building a web app?
Let Piccolo scaffold you an ASGI web app, using Piccolo as the ORM:
piccolo asgi new
Starlette and FastAPI are currently supported.
Are you a Django user?
We have a handy page which shows the equivalent of common Django queries in Piccolo.
Documentation
See 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
piccolo-0.14.10.tar.gz
(106.2 kB
view hashes)
Built Distribution
piccolo-0.14.10-py3-none-any.whl
(169.3 kB
view hashes)
Close
Hashes for piccolo-0.14.10-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e12f6f0c85e425424facf224e537902d8a753e2a071bce66cb6f1a610fb727e7 |
|
MD5 | 3b9070f1307a1a635d4817077b1610f7 |
|
BLAKE2b-256 | 3e1aedde429cbe60ccb85ab0a665fd05c223c2c4428c0f56ca1f8ad2ce1d5e2f |