firestore的ORM
firestore-orm的Python项目详细描述
火库ORM
Firestore ORM是一个添加对Firestore对象的支持的模块 应用程序的关系映射。它需要firebase管理员 2.16.0或更高。Firestore旨在简化收藏 对象,方法是提供有用的默认值和额外的辅助对象 更容易完成一般任务。在
概述
Firestore ORM提供以下关键功能:
- 对象模型-以python对象的形式创建模型。在
- 查询-轻松执行firestore查询。在
- 关系-连接文档的SQL外键概念。在
用法
在下面的段落中,我将描述你如何获得 将Firestore ORM用于您自己的项目。在
得到它
要下载Firestore ORM,要么派生这个github repo,要么简单地使用 通过pip的Pypi。在
$ pip install firestore_orm
创建模型
^{pr2}$操作
>>>pet=Pet(name='Katty')>>>pet.id>>>'26b353d6-f5a1-4a38-b61a-b9371de5b92f'>>>pet.save()# save to firestore>>>person=Person(name='Chuck',pet_id=pet.id)>>>person.name>>>'Chuck'>>>person.surname# >>> None>>>person.populate(surname='Norris',age=20)>>>person.surname>>>'Norris'>>>person.name>>>'Chuck'>>>person.id>>>'1286f8ae-710f-4fb7-a804-31fbed525390'>>>person.save()# save to firestore>>>Person.query.fetch()>>>[Person(created_at=datetime.datetime(2019,3,24,13,57,21,761746),name='Chuck',surname='Norris',age=20,pet_id='26b353d6-f5a1-4a38-b61a-b9371de5b92f',id='1286f8ae-710f-4fb7-a804-31fbed525390')]>>>Person.query.get('1286f8ae-710f-4fb7-a804-31fbed525390')>>>Person(created_at=datetime.datetime(2019,3,24,13,57,21,761746),name='Chuck',surname='Norris',age=20,pet_id='26b353d6-f5a1-4a38-b61a-b9371de5b92f',id='1286f8ae-710f-4fb7-a804-31fbed525390')>>>person=Person.query.get('1286f8ae-710f-4fb7-a804-31fbed525390')>>>person.pet>>>'Pet(created_at=datetime.datetime(2019, 3, 24, 13, 57, 21, 761746), name='Katty', id='26b353d6-f5a1-4a38-b61a-b9371de5b92f')'
过滤器
可以使用以下函数筛选查询结果
>>>Person.query.fetch(filters=[('name','==','Chuck'),('age','<=',20)])>>>[Person(created_at=datetime.datetime(2019,3,24,13,57,21,761746),name='Chuck',surname='Norris',age=20,pet_id='26b353d6-f5a1-4a38-b61a-b9371de5b92f',id='1286f8ae-710f-4fb7-a804-31fbed525390')]
订购依据
也可以对查询结果排序。如果出现索引错误,请按照链接在firebase上构建索引
>>>Person.query.fetch(order_by={"population":'DESCENDING'})# orders query by DESCENDING order: set to `ASCENDING` for ascending order
你准备好了!在
版权所有(c)2019 Benjamin Arko Afrasah
根据Apache许可证2.0版(“许可证”)授权;您可以 除非符合许可证,否则不要使用此文件。你可以得到 许可证副本
http://www.apache.org/licenses/LICENSE-2.0
除非适用法律要求或书面同意 根据许可证分发的是“按原样”分发的, 没有任何明示或暗示的保证或条件。 有关管理权限和的特定语言,请参阅许可证 许可证下的限制。在
- 项目
标签: