Introduction

Morana is a small SQL builder for Python. It was developed mainly to be used together with Twisted network framework and for my TamTam project.

Examples

print db.select(["*", db.users.id, db.log.description], 
                (db.users.id == db.logs.user_id) & (db.mirko.danko > 1), 
                groupBy=["janko", db.mirko.danko], 
                orderBy=[-db.mirko.danko, "slavko"]).build()
SELECT *, users.id, log.description FROM log, mirko, users, logs WHERE 
       ((users.id = logs.user_id) AND (mirko.danko > 1)) GROUP BY janko, mirko.danko 
       ORDER BY mirko.danko DESC , slavko
print db.select(["*"], (db.users.id == db.logs.user_id) & (db.mirko.danko > 1)
                & (db.mirko.benko == 2), limit=(10, 2)).build()
SELECT * FROM mirko, users, logs WHERE (((users.id = logs.user_id) AND
       (mirko.danko > 1)) AND (mirko.benko = 2)) LIMIT 10, 2
print db.update(db.users,
                {"user": "janko", "nesto": 4},
                db.users.user.startswith("mirko") & sql.NOTIN(db.user.user, (1,2, "3"))).build()
UPDATE users SET nesto=4, user='janko' WHERE ((users.user LIKE "mirko%") 
       AND user.user NOT IN (1, 2, '3'))
print db.insert(db.users, {"user": "janko", "id": None}).build()
INSERT INTO users (user, id) VALUES ( 'janko', NULL)