peewee¶

Peewee is a simple and small ORM. It has few (but expressive) concepts, making it easy to learn and intuitive to use.
A small, expressive ORM
Written in python with support for versions 2.6+ and 3.2+.
built-in support for sqlite, mysql and postgresql
numerous extensions available (postgres hstore/json/arrays, sqlite full-text-search, schema migrations, and much more).



Peewee’s source code hosted on GitHub.
New to peewee? Here is a list of documents you might find most helpful when getting started:
Quickstart guide – this guide covers all the bare essentials. It will take you between 5 and 10 minutes to go through it.
Guide to the various query operators describes how to construct queries and combine expressions.
Field types table lists the various field types peewee supports and the parameters they accept. There is also an extension module that contains special/custom field types.
Contents:¶
- Installing and Testing
- Quickstart
- Example app
- Additional Resources
- Contributing
- Managing your Database
- Creating a database connection and tables
- Using Postgresql
- Using SQLite
- Using BerkeleyDB
- Using MySQL
- Connecting using a Database URL
- Multi-threaded applications
- Run-time database configuration
- Dynamically defining a database
- Connection Pooling
- Read Slaves
- Schema migrations
- Generating Models from Existing Databases
- Adding Request Hooks
- Additional connection initialization
- Advanced Connection Management
- Using multiple databases
- Database Errors
- Automatic Reconnect
- Logging queries
- Generating skeleton code
- Adding a new Database Driver
- Models and Fields
- Querying
- Creating a new record
- Bulk inserts
- Updating existing records
- Atomic updates
- Deleting records
- Selecting a single record
- Create or get
- Selecting multiple records
- Filtering records
- Sorting records
- Getting random records
- Paginating records
- Counting records
- Aggregating records
- Retrieving Scalar Values
- SQL Functions, Subqueries and “Raw expressions”
- Security and SQL Injection
- Window functions
- Retrieving raw tuples / dictionaries
- Returning Clause
- Query operators
- Foreign Keys
- Performance Techniques
- Transactions
- Playhouse, extensions to Peewee
- Sqlite Extensions
- Sqlite User-Defined Functions
- apsw, an advanced sqlite driver
- BerkeleyDB backend
- Sqlcipher backend
- Postgresql Extensions
- DataSet
- Django Integration
- Fields
- Generic foreign keys
- Hybrid Attributes
- Key/Value Store
- Shortcuts
- Signal support
- pwiz, a model generator
- Schema Migrations
- Reflection
- Database URL
- CSV Utils
- Connection pool
- Read Slaves
- Test Utils
- pskel
- Flask Utils
- API Reference
- Hacks
Note¶
If you find any bugs, odd behavior, or have an idea for a new feature please don’t hesitate to open an issue on GitHub or contact me.