如何将Python连接到PostgreSQL
我在网上搜索时,发现了关于PyGreSQL库的文档,这个库可以帮助我把Python和Postgres连接起来。
不过,我找不到任何地方可以下载这个包。即使是这个文档:http://www.pygresql.org/install.html
里面提到了下载Windows安装程序等等,但没有说明从哪里下载。
我想让这个连接在Python 2.7上工作。
4 个回答
2
Python中那些不是标准库的一部分的模块,可以在pypi网站上找到,地址是 https://pypi.python.org。比如说,pygresql这个模块就可以在这个页面找到:https://pypi.python.org/pypi/PyGreSQL/
在这个页面上,你还可以看到这个包最后一次更新的时间(在这个例子中是2013年),所以你也可以选择其他的,比如psycopg2,用来通过Python连接PostgreSQL数据库,链接是 https://pypi.python.org/pypi/psycopg2
4
如果你在Docker中使用PostgreSQL,比如说
docker pull postgres
mkdir -p $HOME/docker/volumes/postgres
docker run --rm --name pg-docker -e POSTGRES_PASSWORD=docker -d -p 5432:5432 -v $HOME/docker/volumes/postgres:/var/lib/postgresql/data postgres
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
850f9ee04731 postgres "docker-entrypoint.s…" 44 hours ago Up 44 hours 0.0.0.0:5432->5432/tcp pg-docker
你不需要安装psycopg2,对于这种情况,你可以安装psycopg2-binary
pip install psycopg2-binary
之后可以像这样使用
import psycopg2
connection = psycopg2.connect(database="postgres", user='postgres', password='docker', host="localhost", port=5432)
cursor = connection.cursor()
sql_context ="""
select
*
from
public.metrics sm
where
sm.metric_name not like '%test%'
group by
sm.metric_name
"""
cursor.execute(sql_context)
# Fetch all rows from database
record = cursor.fetchall()
print("Data from Database:- ", record)
8
第一步:用命令安装一个叫做 psycopg2 的工具,方法是输入 pip install psycopg2。
第二步:使用下面的代码:
import psycopg2
connection = psycopg2.connect(database="dbname", user="username", password="pass", host="hostname", port=5432)
cursor = connection.cursor()
cursor.execute("SELECT * from portal.portal_users;")
# Fetch all rows from database
record = cursor.fetchall()
print("Data from Database:- ", record)