home example download handbook trac

Examples

These examples just scratch the surface of what QLime is capable of. See also the detailed feature list.

Single Table

For a database table users:

username firstname lastname
     

Here is sample code that prints filtered records:

from qlime import pgsql, DataObject

class User(DataObject):
    pass

connection = pgsql.DSConn(dbname='dbname', username='user', password='pass')
obclass = connection['public.users']   # public.users is the tablename

User.connect_to(obclass)

for u in User.find(lastname='Smith'):
    print u.username, u.firstname

Joined Tables

For a database table users:

username firstname lastname
     

and a table groups:

username groupname
   

Here is sample code that joins the two tables and loads data

from qlime import pgsql, DataObject

class User(DataObject):
    pass

class Group(DataObject):
    pass

connection = pgsql.DSConn(dbname='dbname', username='user', password='pass')

# Create a new composite obclass called 'users' based on existing obclass
# 'public.users'. Composite obclasses can contain non-atomic attributes based
# on joins.

users = connection.new_composite_obclass('users', 'public.users')
groups = connection['public.groups']

# Create a new attribute 'groups' based on existing obclass 
# called 'public.groups', by joining this object's 'username' attribute
# with that object's 'username' attribute.

users.join_obclass(subobname='groups', join_attr='username',
                   jointo_oc='public.groups', jointo_attr='username')

User.connect_to(users)
Group.connect_to(groups)

for u in User.find(lastname='Smith'):
    print u.username, u.firstname
    for g in u.groups:
        print g.groupname

Here is a query that filters on a joined table column:

User.search(User.group.groupname.isEq('admin'))

Ready to try? Download QLime and read the handbook.