やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

ORマッパーライブラリの調査

PythonでSQLite3が使えるO/Rマッパライブラリを調査した。

参考

こちらを参考にさせていただいた。感謝。

datasetというライブラリを使ってみる。

dataset

インストール

C:/python34/Scripts/pip install dataset

Collecting dataset
  Downloading dataset-0.7.1-py2.py3-none-any.whl
Collecting alembic>=0.6.2 (from dataset)
  Downloading alembic-0.8.9.tar.gz (977kB)
    100% |################################| 983kB 198kB/s
Collecting normality>=0.2.2 (from dataset)
  Downloading normality-0.3.9.tar.gz
Collecting PyYAML>=3.10 (from dataset)
  Downloading PyYAML-3.12-cp34-cp34m-win32.whl (183kB)
    100% |################################| 184kB 468kB/s
Collecting sqlalchemy>=0.9.1 (from dataset)
  Downloading SQLAlchemy-1.1.4.tar.gz (5.1MB)
    100% |################################| 5.1MB 48kB/s
Requirement already satisfied: six>=1.7.3 in c:\python34\lib\site-packages (from
 dataset)
Collecting Mako (from alembic>=0.6.2->dataset)
  Downloading Mako-1.0.6.tar.gz (575kB)
    100% |################################| 583kB 312kB/s
Collecting python-editor>=0.3 (from alembic>=0.6.2->dataset)
  Downloading python-editor-1.0.3.tar.gz
Collecting chardet (from normality>=0.2.2->dataset)
  Downloading chardet-2.3.0.tar.gz (164kB)
    100% |################################| 174kB 409kB/s
Requirement already satisfied: MarkupSafe>=0.9.2 in c:\python34\lib\site-package
s (from Mako->alembic>=0.6.2->dataset)
Installing collected packages: sqlalchemy, Mako, python-editor, alembic, chardet
, normality, PyYAML, dataset
  Running setup.py install for sqlalchemy ... done
  Running setup.py install for Mako ... done
  Running setup.py install for python-editor ... done
  Running setup.py install for alembic ... done
  Running setup.py install for chardet ... done
  Running setup.py install for normality ... done
Successfully installed Mako-1.0.6 PyYAML-3.12 alembic-0.8.9 chardet-2.3.0 datase
t-0.7.1 normality-0.3.9 python-editor-1.0.3 sqlalchemy-1.1.4

以下のような依存ソフトが大量にインストールされた。調べるのが面倒だから放置。

  • alembic
  • normality
  • PyYAML
  • SQLAlchemy
  • Mako
  • python-editor
  • chardet

使い方

quickstartを見ればだいたい使い方がわかる。

接続文字列

こちらを参考にさせていただいた。感謝。

driver://user:pass@host/database
e = create_engine('sqlite:///path/to/database.db')
sqlite+pysqlcipher://:passphrase/file_path[?kdf_iter=<iter>]
e = create_engine('sqlite+pysqlite:///file.db', module=sqlite)

ソースコード

#!python3
#encoding:utf-8

import dataset

db_connect_str = 'sqlite:///C:/GitHub.Accounts.sqlite3'
db = dataset.connect(db_connect_str)

for account in db['Accounts']:
    print(account)
    print("id:{0},user:{1},pass:{2},mail:{3},create:{4}".format(account["Id"],account["Username"],account["Password"],account["MailAddress"],account["CreatedAt"]))

所感

これはすばらしい。とてもすっきりした。