A fast, user-friendly ORM and query builder for Python with async support, batteries included.
Piccolo is a fast, user-friendly Object-Relational Mapper (ORM) and query builder for Python. It enables developers to interact with databases using clean, expressive syntax while supporting both synchronous and asynchronous operations. The project solves the need for a modern, batteries-included database toolkit that integrates seamlessly with async web frameworks.
Python developers building web applications with ASGI frameworks like FastAPI, Starlette, or Sanic, who need a productive ORM with async support. It's also suitable for teams migrating from Django seeking a lighter, more flexible alternative.
Developers choose Piccolo for its exceptional developer experience, comprehensive feature set out of the box, and native async support. Its built-in admin interface, modular app system, and clean syntax provide a compelling alternative to heavier frameworks while maintaining power and flexibility.
A fast, user friendly ORM and query builder which supports asyncio.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Full support for both asyncio and synchronous operations, making it ideal for modern ASGI frameworks like FastAPI and traditional Python apps, as highlighted in the README.
Includes an interactive playground for learning and tab completion in IPython/VSCode, enhancing productivity and reducing the learning curve.
Comes with a User model, authentication, migrations, and a powerful admin GUI (Piccolo Admin), reducing boilerplate and providing out-of-the-box functionality.
Fully type-annotated and built with contemporary Python, ensuring code quality and compatibility with modern IDEs and static analysis tools.
Supports scalable, modular codebases using Piccolo apps similar to Django, facilitating maintainable and reusable components in large projects.
Primarily supports PostgreSQL and SQLite; lacks built-in drivers for other popular databases like MySQL, which may require additional work or not be feasible for some projects.
Compared to established ORMs like Django ORM or SQLAlchemy, Piccolo has a smaller ecosystem, meaning fewer third-party integrations, plugins, and community resources.
While it offers Django-like features, developers accustomed to Django's comprehensive tooling might find missing features or a different approach, as noted in the Django comparison page.
Installation requires managing optional dependencies (e.g., 'piccolo[all]'), which can lead to bloated installations or confusion if not carefully specified.
Piccolo is an open-source alternative to the following products:
WordPress is a free and open-source content management system (CMS) written in PHP and paired with a MySQL or MariaDB database, used for creating websites and blogs.
Django Admin is an automatically generated web-based interface included with Django that allows administrators to manage site content. It provides CRUD operations for models and is highly customizable.