使用 Python 连接到 PostgreSQL 数据库

本文介绍了创建与 PostgreSQL 上的数据库的连接的过程。 我们需要安装 PostgreSQL 和创建数据库等先决条件,如下所述。


在系统中安装 PostgreSQL

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

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

许多刚开始学习数据库开发的初学者仍然感到困惑。 据了解,数据库是使用 pgAdmin 而不是 PostgreSQL 创建的。

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

在创建数据库之前,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. 模板应在 Postgres 中设置。
  3. 表空间应设置为 pg_default。

排序规则和字符类型应按原样设置,而连接限制设置为-1。 转到标有 sql 的菜单将给出此处使用的查询的概述。

单击“保存”将创建一个数据库。


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

使用 Python 连接到数据库分为三个步骤。 首先,服务器的信息存储在配置文件中。

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

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


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

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

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

服务器信息

创建信息文件后,可以在配置文件中使用它。


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

该程序使用导入包configparser。 方法配置使用两个参数声明:文件名和部分。

变量解析器被初始化,从变量文件名中读取文件。

下面是从数据库中提取项目的 get 方法。 get 部分放在 if-else 语句内,其中 else 方法处理异常。

最后返回变量数据库。

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

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

声明了一个变量 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 连接数据库,以便快速掌握并在实际项目中使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/108144.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

串行原理编程,中文编程工具中的串行构件,串行连接操作简单

串行通信原理编程,中文编程工具中的串行通信构件,串行通信连接设置简单 编程系统化课程总目录及明细,点击进入了解详情。https://blog.csdn.net/qq_29129627/article/details/134073098?spm1001.2014.3001.5502 串行端口 是串行的基础&#…

springboot的缓存和redis缓存,入门级别教程

一、springboot(如果没有配置)默认使用的是jvm缓存 1、Spring框架支持向应用程序透明地添加缓存。抽象的核心是将缓存应用于方法,从而根据缓存中可用的信息减少执行次数。缓存逻辑是透明地应用的,对调用者没有任何干扰。只要使用…

Python---break关键字对for...else结构的影响

for循环中添加else结构 循环可以和else配合使用, else下方缩进的代码指的是当循环正常结束之后要执行的代码。 强调: 循环 正常结束,else之后要执行的代码。 非正常结束,其else中的代码是不会执行的。(如遇到br…

2023年第四届MathorCup高校数学建模挑战赛——大数据竞赛B题解题思路

比赛时长为期7天的妈杯大数据挑战赛如期开赛,为了帮助对B题有更深的理解,这里为大家带来B题的初步解题思路。 赛道B:电商零售商家需求预测及库存优化问题 由于妈杯竞赛分为初赛复赛,因此,对于B题大家仅仅看到了预测相…

gin 框架出现runtime error: index out of range [0] with length 0

之前是这样的: category : c.Request.Form["type"][0] 加上这一句就变成了 fmt.Println(c.Request.FormFile("type")) category : c.Request.Form["type"][0]

AIGC如何助力产品研发的创新和性能提升

1、现有的产品和系统的升级 a)、关键算法的替换,用深度学习来替换,用数学来描述: 需要定义好中间状态的和,总体过程是,中间的过程,替换为。 总体过程表示成下面的方式: 完成替换过程: 。 b)…

IP应用场景API的反欺诈潜力:保护在线市场不受欺诈行为侵害

前言 在数字化时代,网络上的商业活动迅速增长,但与之同时,欺诈行为也在不断演化。欺诈者不断寻找新方法来窃取个人信息、进行金融欺诈以及实施其他不法行为。为了应对这一威胁,企业和组织需要强大的工具,以识别和防止…

微服务-Eureka

文章目录 提供者与消费者Eureka注册中心搭建EurekaServer服务注册服务发现项目结构 提供者与消费者 Eureka注册中心 服务消费者该如何获取服务提供者的地址信息? 服务提供者启动时向eureka注册自己的信息 eureka保存这些信息 消费者根据服务名称向eureka拉取提供者信…

【随机过程】布朗运动

这里写目录标题 Brownian motion Brownian motion The brownian motion 1D and brownian motion 2D functions, written with the cumsum command and without for loops, are used to generate a one-dimensional and two-dimensional Brownian motion, respectively. 使用cu…

链动2+1全新9.0版本 无限链动收益

一个平台能否长期存活取决于它是否有一个支撑其持续发展的商业模式。蜂群精选深谙用户心理,对链动21模式进行改造,创新出一种同时具备裂变能力和高效吸引用户留存的新玩法。 链动21模式在整个架构上都是完整的,可以说是一个非常出色的营销模式…

贪心算法学习——最长单调递增子序列

目录 ​编辑 一,题目 二,题目接口 三,解题思路和代码 一,题目 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组…

【开源】基于SpringBoot的城市桥梁道路管理系统的设计和实现

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 查询城市桥梁4.2 新增城市桥梁4.3 编辑城市桥梁4.4 删除城市桥梁4.5 查询单个城市桥梁 五、免责说明 一、摘要 1.1 项目介绍 基于VueSpringBootMySQL的城市桥梁道路管理系统,支持…

npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本。

1、在vscode终端执行 get-ExecutionPolicy ,显示Restricted,说明状态是禁止的。 2、更改状态: set-ExecutionPolicy RemoteSigned 出现需要管理员权限提示,可选择执行 Set-ExecutionPolicy -Scope CurrentUser 出现的ExecutionPolicy参数后输…

企业如何安全跨国传输30T文件数据

对于一些对数据敏感性比较高的企业,如IT企业和国企等,跨国数据传输是当今企业面临的一个重要挑战,尤其是当数据量达到30T这样的规模时,如何保证数据的速度、安全和合规性,就成为了企业必须考虑的问题。本文将从以下几个…

NTP(Network Time Protocol 网络时间协议)

作用 大数据产生与处理系统是各种计算设备集群的,计算设备将统一、同步的标准时间用于记录各种事件发生时序,如 E-MAIL 信息、文件创建和访问时间、数据库处理时间等。大数据系统内不同计算设备之间控制、计算、处理、应用等数据或操作都具有时序性&…

vue项目package.json与package-lock.json作用及区别

package.json文件介绍和使用 运行项目,命令行: npm run dev “dependencies” 运行依赖,需引入页面使用 “devDependencies” 开发依赖(生产环境使用),只是开发阶段需要 我们每次新建一个项目的时候会发现在项目中会有这么俩个相似的文件&am…

基于SSM的高校图书馆设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

独家揭秘|小米14魔改存储芯片多出8GB空间背后的秘诀

在昨天发表的文章下面,有粉丝朋友要求“评价下小米256GB多8GB的技术”。小编也是好奇,本文就让我们一起来看看这个“高科技”背后的秘密。(提前声明:本文内容仅代表个人观点,如果不当之处,小米公司不要投诉…

推荐免费的文本转语音工具TTS-Vue【且开源】

标签: 文本转语音; 免费文本转语音软件; 网上有很多文本转语音的工具,但收费具多。 这里推荐一个免费的文本转语音工具。 不需要注册,下载安装就可以使用。且代码开源。 TTS-Vue 软件主页:https://loker…

在 Windows 用 Chrome System Settings 设置代理

在 Windows 用 Chrome System Settings 设置代理 贴心提示:在设置代理之前,请确保您已经安装了 浏览器。 🔧 设置代理的详细步骤如下: 打开 浏览器,输入 //settings/system 并回车。 在「系统和网络设置」页面中&am…