postgres篇---docker安装postgres,python连接postgres数据库

这篇具有很好参考价值的文章主要介绍了postgres篇---docker安装postgres,python连接postgres数据库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、docker安装postgres

Docker是一种开源容器化平台,它允许开发人员在轻松可移植的环境中构建、部署和运行应用程序。PostgreSQL是一种强大的关系型数据库,它是一种开源软件,提供了高可靠性、可扩展性和安全性。

在Docker中使用PostgreSQL,您可以通过Docker Hub上的PostgreSQL官方镜像来创建一个容器,然后在其中运行PostgreSQL服务。以下是在Docker中使用PostgreSQL的一些常见步骤:

1.1 安装Docker:

请按照您的操作系统的指南安装Docker。安装完成后,您可以在终端中运行docker命令,验证Docker是否正确安装。

1.2 从Docker Hub获取PostgreSQL镜像

运行以下命令从Docker Hub上获取最新版本的PostgreSQL镜像:

docker pull postgres

docker 安装postgres,docker,数据库,python

1.3 创建PostgreSQL容器

运行以下命令以创建一个新的PostgreSQL容器。其中,-e 参数用于设置环境变量,-p 参数用于将容器端口映射到主机端口,-v 参数用于将主机目录挂载到容器内的目录。

docker run --name my-postgres -e POSTGRES_PASSWORD=mysecretpassword 
-e ALLOW_IP_RANGE=0.0.0.0/0  -p 5432:5432 -v /my/local/path:/var/lib/postgresql/data -d postgres

在上面的命令中,my-postgres是容器的名称,POSTGRES_PASSWORD是PostgreSQL的管理员psd,-p 5432:5432将容器的5432端口映射到主机的5432端口,/my/local/path 是主机上的目录(可自行设置),将用于容器中的PostgreSQL数据。

1.4 访问PostgreSQL

现在,您可以使用以下命令进入正在运行的容器:

docker exec -it my-postgres psql -U postgres

这将打开一个交互式PostgreSQL shell,您可以在其中执行SQL命令。

这些是在Docker中使用PostgreSQL的一些基本步骤。您还可以使用其他Docker命令来管理容器,例如docker stop、docker start和docker rm等。

二. python连接postgres数据库

python连接postgresql数据库

postgresql是常用的关系型数据库,并且postgresql目前还保持着全部开源的状态,所以我们今天就一起来学习一下,如何用python连接postgresql。
安装psycopg

pip install psycopg2

官方文档地址:

https://www.psycopg.org/docs/cursor.html

连接数据库操作流程

若是增、删、更等操作,则操作流程为:

  • connect连接
  • 获取游标对象cursor
  • 执行sql得到结果execute
  • 操作成功执行提交commit
  • 关闭连接释放资源

若是查询,则操作流程为:

  • connect连接
  • 获取游标对象cursor
  • 执行sql得到结果 execute
  • 获取数据
  • 关闭连接释放资源

查询结果和增删改其他操作步骤都一样,只有第四步的时候,有些许差别。

2.1 connect连接

connect连接

psycopg2.connect(dsn=None , connection_factory=None , cursor_factory=None , async=False , \*\*kwargs)

创建得到一个新的数据库会话并返回一个新的connection对象。
可以使用dsn参数将连接参数指定为libpq连接字符串:

conn = psycopg2.connect("dbname=test user=postgres password=secret")

或者用一组关键字参数:

conn = psycopg2.connect(dbname="test", user="postgres", password="secret")

或者两者混用,如果在两个源中指定了相同的参数名称,则关键字参数值将优先于dsn参数。
注意,需要dsn或至少一个与连接相关的关键字参数。
基本的连接参数:

  • dbname - 数据库名称
  • user - 用于验证的用户名
  • password - 用于验证的psd
  • host - 数据库主机地址
  • port - 连接的端口号(默认5432)

示例:

conn = psycopg2.connect(database='test',user='postgres',password='123456',host='localhost',port='5432')

2.2 cursor

cursor

cursor ( name = None , cursor_factory = None , scrollable = None , withhold = False ) 

使用连接返回一个新cursor对象。

示例:

cursor = conn.cursor()

2.3 excute执行sql语句

从上面cursor()后得到一个游标对象,该游标对象使用execute方法或者executemany方法执行sql语句。

  • execute(query, vars=None)
cursor.execute(sql)
  • executemany(query, vars_list)
cursor.executemany(sql)

2.4 提交结果

若是增加,删除,更改表中的数据,修改后必须提交才能生效。

conn.commit()

2.5 获取数据

若是查询数据的时候,我们需要检索函数获取数据,常用的函数有fetchone(),fetchmany(),fetchall() 。

  • fetchone()
    返回一个元组,元组中是结果集的下一行。当没有数据可用时,则返回None。
  • fetchmany([size=cursor.arraysize])
    返回一个元组,元组中是下一组结果的结果集。当没有更多行可用时,返回一个空列表。
    每次调用要获取的行数由参数指定。如果未给出,则游标arraysize确定要获取的行数。
    在不传参数的情况下,默认只返回第一条数据,若是在括号里传入数字,表示获取几条数据,则最后的结果就会返回几条。
  • fetchall()
    获取查询结果的所有(剩余)行,将它们作为元组列表返回。如果没有更多记录可获取,则返回一个空列表。

2.6 关闭连接

conn.close()

示例

# -*- coding: utf-8 -*-
import psycopg2
## 建立connect 连接
conn = psycopg2.connect(database='test',user='postgres',password='xxxxxx',host='localhost',port='5432')

# 游标
cur = conn.cursor()

# 执行sql
# 建表
cur.execute('create table tname(id int,name varchar);')
# 插入数据
cur.execute('insert into tname values (1,\'张三\');');
t_table=((2,'李四'),(3,'王五'))
cur.executemany('insert into tname values (%s,%s)',t_table)

# 提交数据
conn.commit()

# 关闭连接
conn.close()

得到结果如下图:
docker 安装postgres,docker,数据库,python

import psycopg2
## 建立connect 连接
conn = psycopg2.connect(database='test',user='postgres',password='xxxxxx',host='localhost',port='5432')

# 游标
cur = conn.cursor()

# 执行sql
cur.execute('select * from tname;')

# 获取数据
rows = cur.fetchall()
for row in rows:
    print(row)

# 关闭连接
conn.close()

得到结果如下图:
docker 安装postgres,docker,数据库,python
好啦,本文到这里就结束啦。
感谢您的阅读~文章来源地址https://www.toymoban.com/news/detail-690444.html

到了这里,关于postgres篇---docker安装postgres,python连接postgres数据库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【fly-iot飞凡物联】(15):IOT项目使用TDengine数据库,进行技术调研,本地使用docker启动成功,可以使用python进行连接数据插入。

    本文的原文连接是: https://blog.csdn.net/freewebsys/article/details/108971807 fly-iot飞凡物联专栏: https://blog.csdn.net/freewebsys/category_12219758.html 产品简介 TDengine 是一款专为物联网、工业互联网等场景设计并优化的大数据平台,它能安全高效地将大量设备、数据采集器每天产生的高达 TB 甚至

    2024年02月03日
    浏览(62)
  • Navicat使用HTTP通道服务器进行连接mysql数据库(超简单三分钟完成),centos安装nginx和php,docker安装nginx+php合并版

    因为数据库服务器在外网是不能直接连接访问的,但是可以访问网站,网站后台就能访问数据库,所以在此之前,访问数据库的数据是一件非常麻烦的事情,在平时和运维的交流中发现,他们会使用ssh通道进行连接访问数据库,之前并没在意这个东西,直到运维人员一直连不

    2024年02月10日
    浏览(75)
  • Docker与本地数据库连接

    是一个开源的应用容器,容器是完全使用沙箱机制,各个应用之间不会有连接,是单独运行的。 镜像:将应用程序所需要的环境和配置等文件打包在一起 \\\"mysql:5.7\\\"前半部分的代表镜像的名称,后半部分代表版本号(若没有版本号则为最新版本latest)   拉取、查看镜像 docker

    2024年02月02日
    浏览(53)
  • 往docker中cloudbeaver的容器添加达梦数据库、impala数据库连接支持(cloudbeaver添加自定义数据连接)

    cloudbeaver默认没有开放impala连接,更不会支持国产数据库了 docker安装运行cloudbeaver可以参考文章:docker安装运行CloudBeaver并设置默认语言为中文 本文跳过cloudbeaver镜像拉取,直接就开始实现自定义数据库连接功能 1.1、新建挂载的宿主机根目录 挂载的文件都放置该目录下 1.2、运

    2024年01月19日
    浏览(76)
  • docker 启动 nacos 连接本地数据库 踩坑

    报错开始行 后面找到一行关键错误 一般来讲本地数据库是不会放开远程连接的 所以我这边是新建一个用户 并授权 开始远程连接 创建nacos用户 将nacos数据管理权限授权给nacos 将新配置刷新到缓存中,这样就不用重启数据库 修改配置 application.properties文件 再次启动

    2024年02月11日
    浏览(43)
  • docker上部署程序后无法连接数据库的问题

    咱就是说,这个问题差点给我劝退docker。下面说下环境情况。 装了个javaweb程序容器,装了个数据库容器,javaweb容器就是链接不上数据库。 咱也是跟着菜鸟教程的容器互联步骤简历网络链接: 并且启动时增加--network=xxx 都加入到了这个网络。 但是!!!重点,但是!!! 能

    2024年02月08日
    浏览(38)
  • 【100天精通python】Day31:使用python操作数据库_数据库编程接口,连接对象和游标对象,数据库连接配置

    目录  专栏导读  一、数据库编程接口 1. Python标准库接口 2. MySQL Connector/Python接口

    2024年02月13日
    浏览(48)
  • python连接数据库

    记录几种常见的python连接数据库的代码,方便用的时候直接取。 1.python连接mysql 2.python连接hive 3.python连接德鲁伊库 4.python连接sqlsever 5.python连接oracle 6.python 连接impala查询:         

    2024年02月12日
    浏览(37)
  • Python 连接 MySQL 数据库

    在实际数据分析和建模过程中,我们通常需要从数据库中读取数据,并将其转化为 Pandas dataframe 对象进行进一步处理。而 MySQL 数据库是最常用的关系型数据库之一,因此在 Python 中如何连接 MySQL 数据库并查询数据成为了一个重要的问题。 本文将介绍两种方法来连接 MySQL 数据

    2024年02月16日
    浏览(49)
  • python连接postgresql数据库

    postgresql是常用的关系型数据库,并且postgresql目前还保持着全部开源的状态,所以我们今天就一起来学习一下,如何用python连接postgresql。 官方文档地址: https://www.psycopg.org/docs/cursor.html 若是增、删、更等操作,则操作流程为: connect 连接 获取游标对象 cursor 执行sql得到结果

    2024年02月16日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包