3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PythonでPostgreSQLを操作する部分をライブラリ化してみた

Posted at

初めに

今までにPostgresを操作するために必要なものはライブラリとして作ってしまった方が楽だなと思いライブラリにしてみました。基本的な機能は以前書いたflaskのラッピングをしている中で作成したDB用の部分をライブラリにしたものになります。

インストール

pip install  git+https://github.com/KiharaTakahiro/pgsupporter.git

簡単な使い方

psycopg2を使用しているのでQueryの書き方等は基本的に同じです

from pgsupporter import start_transaction, DbConnecter

connector = DbConnecter("DB名","ホスト名", "ユーザ名", "パスワード")
# 参照系
with start_transaction(connector=connector) as tx:
  sql = "SQL文"
  values = [] # パラメタを指定する場合は引数が必要
  # 1件取得 
  result = tx.find_one(sql, values)
  # 全件取得
  result = tx.find_all(sql, values)
  print(result)

# 更新系 readonlyではないのでFalseを指定するのがポイントです
with start_transaction(False, connector=connector) as tx:
  sql = "SQL文"
  values = [] # パラメタを指定する場合は引数が必要
  tx.save(sql, values)

クエリビルダ使用

下記のように使用することでクエリビルダも使用できます。

from pgsupporter import start_transaction, DbConnecter, QueryBuilder

with start_transaction(connector=connector) as tx:
  query_result = QueryBuilder(tx=tx)table('{テーブル名}').where('{フィールド名}', '=', 2).or_where('{フィールド名2}', '=', 3).select()
  print(query_result)

クエリビルダのその他の細かな使い方は下記と同じのため興味があればご参照ください。

終わりに

どちらかといえば今回はライブラリとして提供することを試してみるためにやってみましたが、せっかく簡単に使えるようにしたのでこのような紹介をさせていただきました。
今まで作ったものを細かくライブラリにして使いやすくするのは結構いいなと思い始めてきたので徐々にライブラリ化していこうと思います。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?