维诺不是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第三方库


热门话题
java如何获取所有链接并使用SeleniumWebDriver逐个单击这些链接   java中数组列表的arraylist移位元素   java如何存储具有不同类型参数的元素   java不能使用List<Future<?>>当从不同位置调用时,在方法参数中   java我应该如何修复代码以避免测试代码出错?   安卓 PreferenceFragment java。lang.RuntimeException   java在运行emulator时发现错误   java取消多个AsyncTask回调的有效方法是什么?如果中途满足条件,这些回调将在将来返回?   有没有办法在运行时将方法动态分配给Java类?   java如何将propertyfile与GlassFish一起使用   如何在PHP中使用bcrypt对密码进行哈希处理?   Java和UDP web服务器   java JPA允许EntityListeners执行JPA操作吗?   java执行do while语句时不会产生错误   java无法在edittext中显示数据库中的数据   java Tomcat中活动会话的数量   java在何处使用@SuppressWarnings(“requestfactory”)   netty连接中的java HornetQ异常