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)
