维诺不是orm

vino的Python项目详细描述


维诺不是虫子。是的,这是真的,不是orm。

开始

使用VINO快速查看:

# setup
# db = Vino('engine://user:passwd@host:port/database')
db = Vino('sqlite://db.sqlite')

# query
db.table('user').find(username='lepture').fetch()

# create
db.table('user').create(username='lepture', website='http://lepture.com')
db.commit()

# update
db.table('user').find(username='lepture').update(username='Hsiaoming Yang')
db.commit()

# delete
db.table('user').find(username='lepture').delete()
db.commit()

设置

我们现在只支持sqlite3和mysql。

sqlite

具有相对路径的sqlite:

db = Vino('sqlite://relative/path/db.sqlite')

带绝对路径的sqlite:

db = Vino('sqlite:///root/path/db.sqlite')

请注意,它不同于sqlalchemy

mysql

包含所有信息的MySQL:

db = Vino('mysql://lepture:123456@localhost:3306/test')

信息较少的mysql:

db = Vino('mysql://lepture@localhost/test')

默认端口为3306。

请注意,默认情况下是utf8

查询

查找所有数据:

db.table('user').fetch()

查找所有指定的数据:

db.table('user').find(username='lepture').fetch()

查找第一个数据:

# fetch 1 will not return a list
db.table('user').find(username='lepture').fetch(1)

查询限制:

db.table('user').find(username='lepture').fetch(5, offset=3)

多个过滤器:

db.table('user').find(username='lepture', age=20).fetch()

高级过滤器:

# just like Django

db.table('user').find(age__in=[20, 22]).fetch()
db.table('user').find(age__gt=20).fetch()
db.table('user').find(age__lt=20).fetch()
db.table('user').find(age__gte=20).fetch()
db.table('user').find(age__lte=20).fetch()

# more see documentation

更高级的过滤器:

db.table('user').find(age__ne=20).fetch()  # not equal
db.table('user').find(age__nin=[20, 22]).fetch()  # not in

# more see documentation

查询顺序:

db.table('user').find(age=20).order('-id').fetch()

创建

更新

删除

删除所有数据:

db.table('user').delete()
db.commit()

删除指定数据:

db.table('user').find(username='lepture').delete()
db.commit()

常见问题解答

  1. 我该如何加入表格?

    Vino提供了简洁的API,您应该自己连接表 使用db.raw

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

推荐PyPI第三方库


热门话题
javajavax。艾尔。PropertyNotFoundException:   java为什么通过TCP发送的文件比它本身包含的文件包含更多的数据?   java为什么字符开关/案例不起作用?   php到java连接器,在哪里可以找到好的连接器   需要帮助Java简单规则形状面积计算器和if语句吗   macos如何从newstyle Oracle Java OSX捆绑包结构启动帮助页?   java既然所有的类都扩展对象,而对象是一个类,那么对象如何扩展对象呢?   java从JavaPairdd<String,Tuple2<Integer,Integer>>转换为JavaPairdd<String,Integer>   java微调器值未从一个活动传递到另一个活动   参数化类型的java数组   java不提供类。getCanonicalName是否存在性能问题?   java输入键JTextField   为什么我不能在java中调用nextLine()方法两次?   JTextPane中的java JProgressBar   java如何获取Crudepository实例?   用于提取几个<div>标记的java正则表达式   java如何使用JUnit Testrunner生成html图像   Go中Java静态属性的等价性