RethinkDB异步驱动程序的类ORM包装器

resync-orm的Python项目详细描述


##简介

resync是一个基于django orm的包装器,它围绕着RethinkDB驱动程序的(当前未记录的)异步连接类。

nesteddocument

来自myapp.auth.models导入用户




类索环(nesteddocument):

嵌套文档没有关联的表,但是允许您为模型中的任意json子文档定义
架构。

weight=fields.floatfield()
enabled=fields.booleanfield(默认值=false)



类小部件(模型):

模型类引用数据库中的表。默认情况下,表名是类的小写名称。



id=fields.strfield()
grommet=fields.nesteddocumentfield(grommet)
foo=fields.strfield()
owner=fields.foreignkeyfield(user)


async def create_widget(user:user)->;无:

可以像普通python对象一样创建和操作模型对象,
然后保存到数据库中。

new_widget=widget(owner=user,foo='bar')
new_widget.grommet=grommet(weight=15.0)
等待new_widget.save()
打印(new_widget.id)45226082-976e-4226-b2c7-0d2c86c45b73':由rethinkdb生成实例。

widget=await widget.objects.get(id=id)
return widget


async def get_all_widgets()->;键入。list[widget]:

”查询集可以“await”以获取列表中的所有结果…

widgets=await widget.objects.all()
return widgets



asyncdef将所有窗口小部件发送到套接字(套接字:aiohttp.web.websocketresponse)->;无:

…或者使用“async for`
”“
async for widget.objects.all():
serializer=mywidgetserializer(widget)
socket.send(serializer.data)



async def rename\u all-widgets()->进行迭代;无:

在单个查询中对数据库进行简单更改,而不将对象提取为python代码。

等待widget.objects.all().update(foo='baz')



typings.list[widget]:

查询相关字段的工作方式与django类似,返回一个QuerySet
,该QuerySet

ret=[]
user.widget_set.filter中的小部件异步(enabled=true):
ret.append(小部件)
ret



def main():
”“
resync透明地处理连接,管理连接池以在可用时重新使用打开的连接。

重新同步.setup({
“主机”:“我的重新思考数据库.fqdn”、
“数据库”:“我的数据库名称”、
“用户”:“测试”,
“password”:“123456”
}这些参数被传递给rethinkdb.connect
(文档:https://www.rethinkdb.com/api/python/connect/)

loop=asyncio.get_event_loop()
fut=asyncio.sure_future(get_all_widgets())
loop.run_until_complete(fut)
print(fut.result())列表小部件……


teardown=asyncio.secure_future(resync.teardown())
loop.run_uncomplete(teardown)关闭所有连接。
loop.close()
````



-test
-docs




-docs







贡献者

-jameskekeys(jameskekekekekekes)(詹姆作者)<;@skolsuper>;

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用ApachePOI将excel文件导入postgreSQL表   java多线程从iText pdf提取文本   winapi Java和SetWindowDisplayAffinity   eclipse juno的java Websphere 6.1插件   java MPAndroidChart:为Y轴提供一些偏移   java中作为参数传递枚举类型的继承   java Gui jframe的工作原理与netbeans不同   使用Bouncy Castle和PDFBox在Java中验证PDF签名   优化缩小Java代码   java无法在安卓中从Firebase取回子数据   返回的java方法?我应该什么时候用?   java错误处理已完成,退出代码为1。与穿过阵列的for循环有关   多线程Java volatile是否阻止缓存或强制执行写缓存?   java Multi-collectItems如何提前终止并返回已收集的项目   java为什么不在服务(请求,响应)中直接调用processRequest(请求,响应)?   java如何从字符串生成int数组?   打印获取用户输入的值并在其他预选文本中显示。JAVA   未显示java DynamicAsper UTF8字符   java Eclipse RCP:不启动应用程序的命令行参数