A small ORM for Python.
- Basic queries (select, insert, update, order by, limit, offset)
- Simple model interace with foreign keys
- Database or table creation, modification, or migration
- Joins, full text search, most other database features
- python2 support
- better comparison support
- only update fields that have changed
- order by with `get`
- query unique entries
- improve query interface
- expand sql functionality
Tables are not created for you, so you must create them yourself.
Table names should match the class name when converted to underscore-
separated words, so a class UserRelationship will map to the table
Tables must have a serial primary key called "id", and foreign key
fields must be appended with "\_id".
''' You should first set up tables named "user" and "message" '''
username = orm.Field()
password = orm.Field()
''' You could also pass in a limit and offset, or yield results
one at a time.
return list(Message.all(user_to=self, order_by='-date_sent'))
return list(Message.all(user_from=user, order_by='-date_sent'))
user_from = orm.ForeignKey(User) # field should be named "user_from_id"
user_to = orm.ForeignKey(User) # field should be named "user_to_id"
date_sent = orm.Field()
body = orm.Field()
read = orm.Field(default=False)
Now you can make queries in a script or interpreter:
u = User.get(id=1)
m = list(Message.all(user_from=u))
Saves or updates a Model object.
Deletes the Model object. Any cascades must be done in table definitions.
Pass in the ID or kwargs matching your model fields.
Model.all(separator='AND', order_by=None, limit='ALL', offset=None, **kwargs):
`all` yields the results, so you must catch them in a loop or list.
- separator: pass in 'OR' and a kwarg with a list of possible arguments. For example:
Message.all(separator='OR', user_from=[user_1, user_2])
This will match all messages from either user\_1 or user\_2.
- order\_by: pass in a string with a field name. Prepend '-' to reverse the order.
- limit: Limit results to first n results.
- offset: Integer to offset your search result
- kwargs: each kwarg value can be a single object or a list.
Returns an integer.
Returns True or False.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.