使用Python连接到PostgreSQL数据库

这篇文章解释了创建与PostgreSQL上的数据库的连接的过程。我们需要一些先决条件,比如安装PostgreSQL和创建数据库,如下所述。

在系统中安装PostgreSQL

顾名思义,PostgreSQL是一个为有效管理数据库系统而创建的SQL系统软件。

在连接到Python之前,需要创建一个数据库。Postgres,实现它。

在很多开始学习数据库开发的初学者中,困惑一直存在。人们认为,数据库是用pgAdmin而不是PostgreSQL创建的。

实际上,前者是管理数据库的,而后者是建立数据库的框架。

在创建数据库之前,pgAdmin需要与PostgreSQL链接。所以,首先,需要安装PostgreSQL。

Postgres 的安装包可以在 PostgreSQL 官方网站的下载部分找到。然后,用户可以从那里下载并安装该应用程序。

各种安装程序可用于Mac、Linux和Windows等操作系统。

用户也可以获得源代码并在他们的电脑上手动编译和安装pgAdmin4。

pgAdmin 是一个有效的工具,用于管理在 PostgreSQL 上工作的数据库。像安装程序这样的可下载文件可以在该应用程序的在线网页上找到。

人们可以从pgAdmin的所有稳定版本的列表中选择,以及其他与PostgreSQL的过程类似的安装包的分布。

一旦pgAdmin被安装到系统中,就可以创建数据库了。

使用pgAdmin创建一个数据服务器和一个数据库

本节包含两个小节。第一节解释了如何创建数据服务器,而第二节则侧重于数据库。

在pgAdmin中创建一个数据服务器

在创建任何数据库之前,pgAdmin需要被正确设置。一个提示要求提供一个主密码,这个密码将在创建或访问新数据库时使用。

当提供了密码后,pgAdmin的网页就会出现。必须建立一个新的服务器来生成一个新的数据库。

Add New Server 按钮可以创建一个对话窗口,在这个窗口中可以建立一个新的服务器。

使用Python连接到PostgreSQL数据库

一开始显示的窗口提供了正在建立的服务器的功能。在本文中,其中一些功能将由用户输入,而其他功能则由系统生成,将保持原样。

首先,需要提供服务器的名称。之后,前往connection 菜单。

那里需要Hostname ,通常是localhost 。端口必须设置为5432

遵循以上几点就足以创建一个有用的数据服务器。

在pgAdmin中创建数据库

一旦数据服务器建立并运行,就可以创建数据库。创建的服务器显示在应用程序窗口的左侧,被称为仪表板。

在左侧面板中的服务器名称旁边有一个下拉图标。点击这个图标时,会弹出一个密码对话框,要求提供系统的主密码。

使用Python连接到PostgreSQL数据库

一个菜单显示了系统内创建的所有服务器。它一直处于停用状态,直到点击后出现密码提示而激活。

右键单击Databases 区域,选择create 。给数据库起个名字,在所有者部分里面选择postgres ;然后,必须设置数据库定义。

数据库的定义有多个选项需要设置。以下是众多选项中一些比较重要的选项。

  1. Encoding 必须设置在-UTF - 8
  2. Template 应设置在Postgres
  3. 表空间应设置为:pg_default

Collation 和 ,而连接限制则设置为 。前往标有 的菜单,可以看到这里使用的查询的概况。Character type -1 sql

点击save ,将创建一个数据库。

将PostgreSQL数据库连接到Python的步骤

使用Python连接到数据库是一个三步的过程。首先,服务器的信息被存储在一个配置文件中。

创建一个Python文件,解析配置文件 (.ini) 并在下一步加载服务器。在最后一步,创建一个连接数据库的Python文件。

在这篇文章中,程序使用psycopg2 导入包连接到PostgreSQL数据库,获取数据库版本,然后打印它们。

创建存储服务器信息的配置 (.ini) 文件

这个文件存储了与服务器有关的细节,这有助于config.py 文件配置数据库。该文件的头部,声明了所使用的RDBMS,位于文件的顶部。

  1. host – 这里提供了所使用的主机或服务器。
  2. database – 这里给出了需要锁定的特定数据库。
  3. user – 用户应该是postgres ,因为它是RDBMS。
  4. password – 创建数据库时在pgAdmin中给出的主密码必须在这里输入。

使用Python连接到PostgreSQL数据库

一旦信息文件被创建,它就可以在配置文件中使用。

创建解析配置文件的Python文件

这个程序使用导入包configparser 。声明了一个方法config ,有两个参数,filenamesection

一个变量parser 被初始化,它从变量filename 读取文件。

下面是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数据库的步骤

该程序有两个导入文件。

  1. psycopg2
  2. config

创建一个方法connect ,连接到PostgreSQL数据库服务器。

声明了一个变量param ,用来读取连接的参数。这些参数被用来连接到数据库服务器。

语法psycopg2.connect(**params) 加载连接参数并连接到数据库服务器。另一个变量,var_cur ,被声明用来存储由connection.cursor 语法创建的游标。

在连接完成后,数据库的PostgreSQL版本会被显示出来。var_cur.execute ,执行语句SELECT version()

版本被加载到变量version_of_database ,然后由fetchone() 函数显示,该函数一次获取单个元素。然后该变量被打印出来。

在数据库版本被获取后,游标被关闭,使用var_cur.close()

异常处理块被添加进来以引发错误异常。在except 块内,当无法连接到数据库或找不到数据库时,程序会打印一个错误信息。

在异常处理结束时,添加一个finally 块,使用语法connection.close() 关闭连接。在关闭连接后,数据库会打印一条确认连接已关闭的信息。

最后,方法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连接数据库,这样就可以迅速掌握这种学习方法,并在实际项目中使用。