trod是一个非常简单的基于asyncio的异步python orm

trod的Python项目详细描述


https://img.shields.io/pypi/v/trod.svghttps://travis-ci.org/acthse/trod.svg?branch=masterhttps://codecov.io/gh/acthse/trod/branch/master/graph/badge.svghttps://img.shields.io/pypi/pyversions/trod.svghttps://img.shields.io/pypi/l/trod.svg

trod是一个非常简单的基于asyncio的异步python orm。 现在它只支持mysql,并使用aiomysql作为数据库的访问“驱动程序”。

  • 严格来说,trod不是orm,它只是在orm模式下工作。 trod中的对象与数据库中的数据完全隔离。 它只是内存中的一个python对象,更改它不会影响数据库。 必须显式执行对数据库的提交请求。
  • trod只使用模型和对象api来编写sql语句并提交 在执行时将它们发送到数据库。加载时,将检索数据 然后打包成对象。

关于

《特洛德》(那是我)的作者是一个初级的Python,特洛德有很多临时的 解决方案优化并继续添加新功能,这只是的开始。 稍后我将继续,欢迎您的问题和请求。

安装

pip install trod

基本示例

importasynciofromtrodimportTrod,And,Autofromtrod.typesimportfield,indexdb=Trod()classUser(db.Model):__table__='user'__comment__='user info'id=field.Bigint(length=20,unsigned=True,primary_key=True,comment='primary key')name=field.String(length=20,use_varchar=True,allow_null=False,comment='user name')password=field.String(length=45,use_varchar=True,comment='password')date=field.Datetime(comment='registration time')created_at=field.Timestamp(auto=Auto.on_create)updated_at=field.Timestamp(auto=Auto.on_update)name_idx=index.Key(column='name')asyncshow_case():""" show some base case """awaitdb.bind('mysql://user:password@host:port/db')# create_tableawaitUser.create()# add a useruser=User(id=1,name='name',password='123456')user_id=awaitUser.add(user)print(user_id)# 1# get a user by iduser=awaitUser.get(user_id)print(user.password)# 123456# update user passwordawaitUser.update(dict(password=654321),User.name==user.name)user=awaitUser.get(user_id)print(user.password)# 654321# delete a userawaitUser.remove(User.id==user.id)# queryusers=[User(id=2,name='zs',password='222222')User(id=3,name='ls',password='333333')]awaitUser.batch_add(users)query_users=awaitUser.query().filter(User.id.in_([1,2,3])).order_by(User.data).all()print(query_users)# [<User(table 'user' : user info)>, <User(table 'user' : user info)>, <User(table 'user' : user info)>]user=awaitUser.query(User.password,User.name).filter(And(User.id.in_([1,2,3],User.name=='ls'))).first()print(user.password)# 333333awaitdb.unbind()asyncio.get_event_loop().run_until_complete(show_case())

要求

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

推荐PyPI第三方库


热门话题
java与Groovy正则表达式匹配混淆   java控制台未定义为JSNI   主目录中的java指针异常   java如何获取hashmap中的arrayList的大小   ApachePOI用于文本,Java代码中的word doc(.docx)中没有进行追加   Ruby对象到Java对象   JavaSpringJPA哈希集只返回一个值   Java在执行由配置了精确类路径参数的mavenjarpluin生成的可执行jar时无法找到依赖项   java我试图在画布上写一个文本,但什么也没发生   java HTTP 404源服务器找不到目标资源的当前表示形式,或者不愿意透露存在该表示形式。不起作用   java提取小数点后的最后一个数字   oop Java:无法访问对象的元素   PHP URL中RecyclerView中的java句柄空异常   不调用OnCreateViewHolder的java Update RecyclerView适配器项