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 공식 웹사이트의 다운로드 섹션에서 찾을 수 있습니다. 그런 다음 사용자는 거기에서 응용 프로그램을 다운로드하고 설치할 수 있습니다.

Mac, Linux 및 Windows와 같은 운영 체제에서 다양한 설치 프로그램을 사용할 수 있습니다.

사용자는 또한 소스 코드를 가져와 수동으로 PC에 pgAdmin4를 컴파일하고 설치할 수 있습니다.

pgAdmin은 PostgreSQL에서 작동하는 데이터베이스를 관리하기 위한 효율적인 도구입니다. 설치 프로그램과 같은 다운로드 가능한 파일은 응용 프로그램의 온라인 웹 페이지에서 찾을 수 있습니다.

pgAdmin의 모든 안정적인 릴리스 목록과 PostgreSQL 프로세스와 유사한 설치 패키지의 다른 배포판에서 선택할 수 있습니다.

pgAdmin이 시스템에 설치되면 데이터베이스를 생성할 수 있습니다.

pgAdmin을 사용하여 데이터 서버 및 데이터베이스 생성

이 섹션에는 두 개의 하위 섹션이 있습니다. 첫 번째 섹션에서는 데이터 서버를 만드는 방법을 설명하고 두 번째 섹션에서는 데이터베이스에 중점을 둡니다.

pgAdmin에서 데이터 서버 생성

데이터베이스를 생성하기 전에 pgAdmin을 올바르게 설정해야 합니다. 새 데이터베이스를 만들거나 액세스할 때 사용할 마스터 암호를 묻는 메시지가 나타납니다.

암호가 제공되면 pgAdmin 웹 페이지가 나타납니다. 새 데이터베이스를 생성하려면 새 서버를 구축해야 합니다.

새 서버 추가 버튼은 새 서버를 구축할 수 있는 대화창을 생성합니다.

pgAdmin에 새 서버 추가

처음에 표시되는 창은 설정 중인 서버의 기능을 제공합니다. 이 문서에서는 일부는 사용자 입력으로 제공되며 나머지는 시스템에서 생성되어 그대로 유지됩니다.

처음에는 서버 이름이 필요합니다. 그런 다음 연결 메뉴로 이동합니다.

거기에 호스트 이름이 필요하며 일반적으로 localhost입니다. 포트는 5432로 설정해야 합니다.

위의 사항을 따르면 유용한 데이터 서버를 만들 수 있습니다.

pgAdmin에서 데이터베이스 생성

데이터 서버가 가동되고 작동되면 데이터베이스가 생성될 수 있습니다. 생성된 서버는 대시보드라고 하는 응용 프로그램 창의 왼쪽에 표시됩니다.

서버 이름 옆 왼쪽 패널 내부에 드롭다운 아이콘이 있습니다. 이 아이콘을 클릭하면 시스템의 마스터 암호를 요청하는 암호 대화 상자가 나타납니다.

pgAdmin에 마스터 암호 입력

메뉴에는 시스템 내부에 생성된 모든 서버가 표시됩니다. 클릭 후 암호 프롬프트가 표시되어 활성화될 때까지 비활성화된 상태로 유지됩니다.

데이터베이스 영역을 마우스 오른쪽 버튼으로 클릭하고 만들기를 선택합니다. 데이터베이스에 이름을 지정하고 소유자 섹션에서 postgres를 선택합니다. 그런 다음 데이터베이스 정의를 설정해야 합니다.

데이터베이스 정의에는 설정할 여러 옵션이 있습니다. 다음은 사용 가능한 많은 옵션 중 일부 필수 옵션입니다.

  1. 인코딩은 - UTF - 8로 설정해야 합니다.
  2. TemplatePostgres로 설정해야 합니다.
  3. 테이블스페이스는 pg_default로 설정해야 합니다.

CollationCharacter type은 그대로 설정하고 연결 제한은 -1로 설정합니다. sql이라고 표시된 메뉴로 이동하면 여기에서 사용된 쿼리에 대한 개요가 제공됩니다.

저장을 클릭하면 데이터베이스가 생성됩니다.

PostgreSQL 데이터베이스를 Python에 연결하는 단계

Python을 사용하여 데이터베이스에 연결하는 것은 3단계 프로세스입니다. 처음에는 서버 정보가 구성 파일에 저장됩니다.

구성(.ini) 파일을 구문 분석하고 다음 단계에서 서버를 로드하는 Python 파일이 생성됩니다. 마지막 단계에서 데이터베이스를 연결하는 Python 파일이 생성됩니다.

이 기사에서 프로그램은 psycopg2 가져오기 패키지를 사용하여 PostgreSQL 데이터베이스에 연결하고 데이터베이스 버전을 가져온 다음 인쇄합니다.

서버 정보를 저장하는 구성(.ini) 파일 생성

이 파일은 config.py 파일이 데이터베이스를 구성하는 데 도움이 되는 서버 관련 세부 정보를 저장합니다. 사용된 RDBMS를 선언하는 파일의 헤드는 파일의 맨 위에 있습니다.

  1. 호스트 - 사용된 호스트 또는 서버가 여기에 제공됩니다.
  2. 데이터베이스 - 타겟팅해야 하는 특정 데이터베이스가 여기에 제공됩니다.
  3. user - 사용자는 RDBMS이므로 postgres로 지정해야 합니다.
  4. 암호 - 데이터베이스를 생성하는 동안 pgAdmin에서 지정한 마스터 암호를 여기에 입력해야 합니다.

서버 정보

정보 파일이 생성되면 구성 파일 내에서 사용할 수 있습니다.

구성 파일을 구문 분석하는 Python 파일 만들기

이 프로그램은 configparser 가져오기 패키지를 사용합니다. 메소드 configfilenamesection의 두 매개변수로 선언됩니다.

filename 변수에서 파일을 읽는 parser 변수가 초기화됩니다.

다음은 데이터베이스에서 항목을 추출하는 get 메서드입니다. get 섹션은 else 메소드가 예외를 처리하는 if-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 데이터베이스에 연결하는 단계

이 프로그램에는 두 개의 가져오기 파일이 있습니다.

  1. psychopg2
  2. 구성

PostgreSQL 데이터베이스 서버에 연결하는 connect 메서드가 생성됩니다.

연결 매개변수를 읽는 데 사용되는 param 변수가 선언됩니다. 이 매개변수는 데이터베이스 서버에 연결하는 데 사용됩니다.

psycopg2.connect(**params) 구문은 연결 매개변수를 로드하고 데이터베이스 서버에 연결합니다. 또 다른 변수인 var_curconnection.cursor 구문에 의해 생성된 커서를 저장하는 데 사용되는 선언됩니다.

데이터베이스의 PostgreSQL 버전은 연결된 후 표시됩니다. var_cur.executeSELECT version() 문을 실행합니다.

버전은 version_of_database 변수에 로드되고 fetchone() 함수에 의해 표시되며 한 번에 단일 요소를 가져옵니다. 그런 다음 변수가 인쇄됩니다.

데이터베이스 버전을 가져온 후 var_cur.close()를 사용하여 커서를 닫습니다.

오류 예외를 발생시키기 위해 예외 처리 블록이 추가되었습니다. 제외 블록 내에서 프로그램은 데이터베이스에 연결할 수 없거나 데이터베이스를 찾을 수 없는 경우 오류 메시지를 인쇄합니다.

예외 처리가 끝나면 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을 사용하여 데이터베이스를 연결하는 방법을 자세한 방식으로 배우게 되므로 이 학습 내용을 빠르게 선택하여 실제 프로젝트에 사용할 수 있습니다.