Vino

0.1.0 BSD License    
  UNRATED

  234 downloads

Vino Is Not ORM

description

download

specs

Vino is not ORM. Yes, it's true, it's not ORM.

Get Started

A quick view with 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()


Setup

We will only support sqlite3 and mysql by now.

SQLite

SQLite with relative path:

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

SQLite with absolute path:

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

Please note, it's different from SQLAlchemy.

MySQL

MySQL with all information:

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

MySQL with less information:

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

Default port is 3306.

Please note, it's utf8 by default.

Query

Find all data:

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

Find all specified data:

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

Find the first data:

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


Limit on query:

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

Multiple filters:

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

Advanced filters:

# 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


More Advanced filters:

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


# more see documentation

Query order:

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

Delete

Delete all data:

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


Delete specified data:

db.table('user').find(username='lepture').delete()
db.commit()
read more   
Last updated on July 19th, 2012

#MySQL frontend #SQLite frontend #database frontend #Python #MySQL #SQLite #database

0 User reviews so far.

SUBMIT