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
以下のような依存ソフトが大量にインストールされた。調べるのが面倒だから放置。
使い方
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"]))
所感
これはすばらしい。とてもすっきりした。