All Projects → piccolo-orm → Piccolo

piccolo-orm / Piccolo

Licence: mit
A fast, user friendly ORM and query builder which supports asyncio.

Programming Languages

python
139335 projects - #7 most used programming language
python3
1442 projects

Projects that are alternatives of or similar to Piccolo

Old Rustorm
An ORM for rust
Stars: ✭ 168 (-23.29%)
Mutual labels:  orm, database, postgresql, sqlite
Linq2db
Linq to database provider.
Stars: ✭ 2,211 (+909.59%)
Mutual labels:  orm, database, postgresql, sqlite
Go Sqlbuilder
A flexible and powerful SQL string builder library plus a zero-config ORM.
Stars: ✭ 539 (+146.12%)
Mutual labels:  orm, database, postgresql, sqlite
Android Orma
An ORM for Android with type-safety and painless smart migrations
Stars: ✭ 442 (+101.83%)
Mutual labels:  orm, query-builder, database, sqlite
Prisma
Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite & MongoDB (Preview)
Stars: ✭ 18,168 (+8195.89%)
Mutual labels:  orm, database, postgresql, sqlite
Denodb
MySQL, SQLite, MariaDB, PostgreSQL and MongoDB ORM for Deno
Stars: ✭ 498 (+127.4%)
Mutual labels:  orm, database, postgresql, sqlite
Rustorm
an orm for rust
Stars: ✭ 205 (-6.39%)
Mutual labels:  orm, database, postgresql, sqlite
Typeorm
ORM for TypeScript and JavaScript (ES7, ES6, ES5). Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, SAP Hana, WebSQL databases. Works in NodeJS, Browser, Ionic, Cordova and Electron platforms.
Stars: ✭ 26,559 (+12027.4%)
Mutual labels:  orm, database, postgresql, sqlite
Hunt Entity
An object-relational mapping (ORM) framework for D language (Similar to JPA / Doctrine), support PostgreSQL and MySQL.
Stars: ✭ 51 (-76.71%)
Mutual labels:  orm, database, postgresql, sqlite
Diesel
A safe, extensible ORM and Query Builder for Rust
Stars: ✭ 7,702 (+3416.89%)
Mutual labels:  orm, query-builder, postgresql, sqlite
Node Orm2
Object Relational Mapping
Stars: ✭ 3,063 (+1298.63%)
Mutual labels:  orm, database, postgresql, sqlite
Ship Hold
data access framework for Postgresql on nodejs
Stars: ✭ 110 (-49.77%)
Mutual labels:  orm, query-builder, database, postgresql
Mikro Orm
TypeScript ORM for Node.js based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, MySQL, MariaDB, PostgreSQL and SQLite databases.
Stars: ✭ 3,874 (+1668.95%)
Mutual labels:  orm, database, postgresql, sqlite
Tortoise Orm
Familiar asyncio ORM for python, built with relations in mind
Stars: ✭ 2,558 (+1068.04%)
Mutual labels:  asyncio, orm, postgresql, sqlite
Db
Data access layer for PostgreSQL, CockroachDB, MySQL, SQLite and MongoDB with ORM-like features.
Stars: ✭ 2,832 (+1193.15%)
Mutual labels:  orm, database, postgresql, sqlite
Bookshelf
A simple Node.js ORM for PostgreSQL, MySQL and SQLite3 built on top of Knex.js
Stars: ✭ 6,252 (+2754.79%)
Mutual labels:  orm, database, postgresql, sqlite
Entityworker.core
EntityWorker is an object-relation mapper(ORM) that enable .NET developers to work with relations data using objects. EntityWorker is an alternative to entityframwork. is more flexible and much faster than entity framework.
Stars: ✭ 91 (-58.45%)
Mutual labels:  orm, database, postgresql, sqlite
Nut
Advanced, Powerful and easy to use ORM for Qt
Stars: ✭ 181 (-17.35%)
Mutual labels:  orm, database, postgresql, sqlite
Roomasset
A helper library to help using Room with existing pre-populated database [DEPRECATED].
Stars: ✭ 138 (-36.99%)
Mutual labels:  orm, database, sqlite
Kangaroo
SQL client and admin tool for popular databases
Stars: ✭ 127 (-42.01%)
Mutual labels:  database, postgresql, sqlite

Piccolo

Build Status Coverage Status Documentation Status Language grade: Python Total alerts

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].