Python を使用して PostgreSQL データベースに接続する

Jay Shaw 2023年6月21日
  1. システムに PostgreSQL をインストールする
  2. pgAdmin を使用してデータ サーバーとデータベースを作成する
  3. PostgreSQL データベースを Python に接続する手順
  4. サーバー情報を格納する構成 (.ini) ファイルの作成
  5. 構成ファイルを解析する Python ファイルの作成
  6. PostgreSQL データベースに接続する手順
  7. まとめ
Python を使用して PostgreSQL データベースに接続する

この記事では、PostgreSQL で作成されたデータベースへの接続を作成する手順について説明します。 以下で説明するように、PostgreSQL のインストールやデータベースの作成などの前提条件が必要です。

システムに PostgreSQL をインストールする

名前が示すように、PostgreSQL はデータベース システムを効率的に管理するために作成された SQL システム ソフトウェアです。

Python に接続する前に、データベースを作成する必要があります。 Postgres、実装してください。

データベース開発を学び始める多くの初心者には、混乱がつきものです。 データベースは PostgreSQL ではなく pgAdmin を使用して作成されていると認識されています。

実際には、前者はデータベースを管理し、後者はそれを構築するフレームワークです。

データベースを作成する前に、pgAdmin を PostgreSQL とリンクする必要があります。 そのため、最初に PostgreSQL をインストールする必要があります。

Postgres のインストール パッケージは、PostgreSQL の公式 Web サイトのダウンロード セクションにあります。 ユーザーはそこからアプリケーションをダウンロードしてインストールできます。

Mac、Linux、Windows などのオペレーティング システム用のさまざまなインストーラーが用意されています。

ユーザーは、ソース コードを入手して手動でコンパイルし、自分の PC に pgAdmin4 をインストールすることもできます。

pgAdmin は、PostgreSQL で動作するデータベースを管理するための効率的なツールです。 インストーラーなどのダウンロード可能なファイルは、アプリケーションのオンライン Web ページにあります。

pgAdmin からのすべての安定版リリースのリストと、PostgreSQL のプロセスに類似したインストール パッケージの他のディストリビューションから選択できます。

pgAdmin をシステムにインストールすると、データベースを作成できます。

pgAdmin を使用してデータ サーバーとデータベースを作成する

このセクションには 2つのサブセクションがあります。 最初のセクションではデータ サーバーの作成方法を説明し、2 番目のセクションではデータベースに焦点を当てます。

pgAdmin でデータ サーバーを作成する

データベースを作成する前に、pgAdmin を適切に設定する必要があります。 新しいデータベースの作成時またはアクセス時に使用されるマスター パスワードを求めるプロンプトが表示されます。

パスワードを入力すると、pgAdmin Web ページが表示されます。 新しいデータベースを生成するには、新しいサーバーを構築する必要があります。

Add New Server ボタンをクリックすると、新しいサーバーを構築できるダイアログ ウィンドウが作成されます。

pgAdmin に新しいサーバーを追加

最初に表示されるウィンドウは、セットアップ中のサーバーの機能を提供します。 この記事では、それらのいくつかにはユーザー入力が提供されますが、その他はシステムによって生成され、そのまま残されます。

最初に、サーバーの名前が必要です。 その後、connection メニューに進みます。

そこでは Hostname が必要ですが、通常は localhost です。 ポートは 5432 に設定する必要があります。

上記のポイントに従うだけで、有用なデータ サーバーを作成できます。

pgAdmin でデータベースを作成する

データ サーバーが起動して動作すると、データベースを作成できます。 作成されたサーバーは、ダッシュボードと呼ばれるアプリケーション ウィンドウの左側に表示されます。

サーバー名の横の左側のパネル内にドロップダウン アイコンがあります。 このアイコンをクリックすると、システムのマスター パスワードを要求するパスワード ダイアログが表示されます。

pgAdminにマスターパスワードを入力

メニューには、システム内で作成されたすべてのサーバーが表示されます。 クリックしてパスワードプロンプトが表示されるまで、アクティブ化されるまで非アクティブ化されたままになります。

データベース エリアを右クリックし、作成 を選択します。 データベースに名前を付け、所有者セクション内で postgres を選択します。 次に、データベース定義を設定する必要があります。

データベースの定義には、設定する複数のオプションがあります。 以下は、利用可能な多くのオプションの中で、より重要なオプションの一部です。

  1. Encoding は - UTF - 8 に設定する必要があります。
  2. TemplatePostgres に設定する必要があります。
  3. テーブルスペースは pg_default に設定する必要があります。

照合順序文字種はそのままで、接続制限を-1に設定します。 sqlというラベルの付いたメニューに移動すると、ここで使用されているクエリの概要が表示されます。

save をクリックすると、データベースが作成されます。

PostgreSQL データベースを Python に接続する手順

Python を使用してデータベースに接続するには、3 段階のプロセスがあります。 最初に、サーバーの情報が構成ファイルに格納されます。

構成 (.ini) ファイルを解析し、次のステップでサーバーをロードする Python ファイルが作成されます。 最後のステップで、データベースに接続する Python ファイルが作成されます。

この記事では、プログラムは psycopg2 インポート パッケージを使用して PostgreSQL データベースに接続し、データベースのバージョンを取得してから出力します。

サーバー情報を格納する構成 (.ini) ファイルの作成

このファイルにはサーバーに関連する詳細が保存され、config.py ファイルがデータベースを構成するのに役立ちます。 使用する RDBMS を宣言するファイルの先頭は、ファイルの先頭にあります。

  1. host - 使用するホストまたはサーバーがここに表示されます。
  2. データベース - ターゲットにする必要がある特定のデータベースがここに表示されます。
  3. user - RDBMS であるため、ユーザーは postgres として指定する必要があります。
  4. password - データベースの作成中に pgAdmin で指定されたマスター パスワードをここに入力する必要があります。

サーバー情報

info ファイルが作成されると、configure ファイル内で使用できます。

構成ファイルを解析する Python ファイルの作成

このプログラムは、インポート パッケージ configparser を使用します。 メソッド config は、filenamesection の 2つのパラメーターで宣言されます。

変数 filename からファイルを読み取る変数 parser が初期化されます。

以下は、データベースからアイテムを抽出する get メソッドです。 get セクションは if-else ステートメント内に配置され、else メソッドが例外を処理します。

最後に、変数 database が返されます。

from configparser import ConfigParser


def config(filename="server_info.ini", section="postgresql"):
    parser = ConfigParser()
    parser.read(filename)

    database = {}
    if parser.has_section(section):
        params = parser.items(section)
        for param in params:
            database[param[0]] = param[1]

    else:
        raise Exception(
            "Section {0} not found in the {1} file".format(section, filename)
        )

    return database

PostgreSQL データベースに接続する手順

プログラムには 2つのインポート ファイルがあります。

  1. psycopg2
  2. 設定

PostgreSQL データベース サーバーに接続するメソッド connect が作成されます。

接続のパラメータを読み取るために使用される変数 param が宣言されています。 これらのパラメーターは、データベース サーバーへの接続に使用されます。

構文 psycopg2.connect(**params) は、接続パラメーターをロードし、データベース サーバーに接続します。 connection.cursor 構文によって作成されたカーソルを格納するために使用される別の変数 var_cur が宣言されています。

接続が確立されると、データベースの PostgreSQL のバージョンが表示されます。 var_cur.execute はステートメント SELECT version() を実行します。

バージョンは変数 version_of_database にロードされ、一度に 1つの要素をフェッチする fetchone() 関数によって表示されます。 その後、変数が出力されます。

データベースのバージョンが取得された後、カーソルは var_cur.close() を使用して閉じられます。

エラー例外を発生させるために、例外処理ブロックが追加されました。 except ブロック内では、データベースに接続できない場合、またはデータベースが見つからない場合、プログラムはエラー メッセージを出力します。

例外処理の最後に、構文 connection.close() を使用して接続を閉じる finally ブロックが追加されます。 接続が閉じられると、データベースは接続が閉じられたことを確認するメッセージを出力します。

最後に、メソッド connection が呼び出されます。

import psycopg2
from config import config


def connect():
    connection = None
    try:
        params = config()

        print("Connection made to the postgresql database")
        connection = psycopg2.connect(**params)

        var_cur = connection.cursor()

        print("Database version is - ")
        var_cur.execute("SELECT version()")

        version_of_database = var_cur.fetchone()
        print(version_of_database)

        var_cur.close()
    except (Exception, psycopg2.DatabaseError) as error:
        print(error)
    finally:
        if connection is not None:
            connection.close()
            print("Database connection closed.")


if __name__ == "__main__":
    connect()

出力:

Python を使用して PostgreSQL データベースに接続

まとめ

この記事では、データベースの作成について説明し、PostgreSQL でデータベースを作成する方法について説明します。 ソフトウェア ツール pgAdmin のさまざまな機能。

読者は、Python を使用してデータベースに接続する方法を詳細に学習できるため、この学習をすぐに習得して実際のプロジェクトで使用できます。