使用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
按钮可以创建一个对话窗口,在这个窗口中可以建立一个新的服务器。
一开始显示的窗口提供了正在建立的服务器的功能。在本文中,其中一些功能将由用户输入,而其他功能则由系统生成,将保持原样。
首先,需要提供服务器的名称。之后,前往connection
菜单。
那里需要Hostname
,通常是localhost
。端口必须设置为5432
。
遵循以上几点就足以创建一个有用的数据服务器。
在pgAdmin中创建数据库
一旦数据服务器建立并运行,就可以创建数据库。创建的服务器显示在应用程序窗口的左侧,被称为仪表板。
在左侧面板中的服务器名称旁边有一个下拉图标。点击这个图标时,会弹出一个密码对话框,要求提供系统的主密码。
一个菜单显示了系统内创建的所有服务器。它一直处于停用状态,直到点击后出现密码提示而激活。
右键单击Databases
区域,选择create
。给数据库起个名字,在所有者部分里面选择postgres
;然后,必须设置数据库定义。
数据库的定义有多个选项需要设置。以下是众多选项中一些比较重要的选项。
-
Encoding
必须设置在-UTF - 8
。 -
Template
应设置在Postgres
。 - 表空间应设置为:
pg_default
。
Collation
和 ,而连接限制则设置为 。前往标有 的菜单,可以看到这里使用的查询的概况。Character type
-1
sql
点击save
,将创建一个数据库。
将PostgreSQL数据库连接到Python的步骤
使用Python连接到数据库是一个三步的过程。首先,服务器的信息被存储在一个配置文件中。
创建一个Python文件,解析配置文件 (.ini
) 并在下一步加载服务器。在最后一步,创建一个连接数据库的Python文件。
在这篇文章中,程序使用psycopg2
导入包连接到PostgreSQL数据库,获取数据库版本,然后打印它们。
创建存储服务器信息的配置 (.ini
) 文件
这个文件存储了与服务器有关的细节,这有助于config.py
文件配置数据库。该文件的头部,声明了所使用的RDBMS,位于文件的顶部。
-
host
– 这里提供了所使用的主机或服务器。 -
database
– 这里给出了需要锁定的特定数据库。 -
user
– 用户应该是postgres
,因为它是RDBMS。 -
password
– 创建数据库时在pgAdmin中给出的主密码必须在这里输入。
一旦信息文件被创建,它就可以在配置文件中使用。
创建解析配置文件的Python文件
这个程序使用导入包configparser
。声明了一个方法config
,有两个参数,filename
和section
。
一个变量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数据库的步骤
该程序有两个导入文件。
psycopg2
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()
输出:
结论
这篇文章讨论了数据库的创建,解释了在PostgreSQL中如何创建数据库。该软件工具的不同功能pgAdmin
。
读者可以详细地了解到如何使用Python连接数据库,这样就可以迅速掌握这种学习方法,并在实际项目中使用。