leancloud-better-storage

Better ORM wrapper of leancloud storage python sdk.


License
Other
Install
pip install leancloud-better-storage==0.1.7

Documentation

leancloud-better-storage-python

PyPI version travis-ci codecov

better leancloud storage wrapper. Simple and lightweight.

Installation

install by easy_install or pip.

$ pip install leancloud-better-storage

Quick start

Model declaration and query just like SQLAlchemy, see example below.

Model declaration

from leancloud_better_storage.storage.models import Model
from leancloud_better_storage.storage.fields import Field

class Product(Model):
    name = Field('product_name', nullable=False)
    price = Field(nullable=False)
    field3 = Field(nullable=False, default=1)
    field4 = Field()

CRUD operations

Create

product = Product.create(name='FirstProduct',price=100)
product.commit()

# v0.1.3 now default null value
assert product.field4 is None

Read & Query

# find by simple equation
products = Product.query().filter_by(name='product').find()
# support >,<,>=,<=,==.but not support compare to another field.
products = Product.query().filter(Product.price < 10).find()
# support and_(), or_().
products = Product.query().filter(Product.created_at > datetime(2018,8,1)).and_() \
    .filter(Product.created_at < datetime(2018,9,1)).find()
# find support limit and skip argument.
products = Product.query().order_by(Product.price.desc).find(limit=10)
# also support pagination, start from page 0 and 10 elements per page.
pages = Product.query().paginate(0, 10)
for page in pages:
    print(page.items) # access elements

Update

product = Product.query().filter_by(name='FirstProduct').first()
product.name = 'LastProduct'
product.commit()

Delete

product = Product.query().filter_by(name='FirstProduct').first()
product.drop()

Update log

  • 0.1.7 修复初始值 null 覆盖了存储服务生成字段值的问题。