MoSQL を試してみた

MoSQL って DB みたいな感じがするが、Python のライブラリ。
MoSQL — More than SQL — MoSQL v0.12.3 documentation
要は ORM を使う規模ではない、でも生の SQL を書くには苦痛という人向けのよう。
SQLAlchemy の Query オブジェクトみたいなのや SQLSoup が近いのかな。


結果はリストと辞書で返ってくる。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pymysql
from mosql.mysql import escape
from mosql.db import Database, all_to_dicts
from mosql.query import select

db = Database(pymysql, host='localhost', user='root', passwd='', db='sampledb')

with db as cur:
    q = select(escape('sample_table')) # SELCT * `sample_table` と同じ
    cur.execute(q)

    print(all_to_dicts(cur))

作者は PostgreSQL ユーザのようだけど(サンプルは PostgreSQL みたい)、PyMySQL とも連携できた。
ただし MySQL を使う場合は escape を使わないと不正な SQL になるよう。

例えば簡単なバッチファイルとかで ORM を使うまでもないけど、SQL を書くの嫌というケースにはハマりそうな感じがする。