使用python中的数据库url从外部获取Heroku Postgres的数据

时间:2021-01-28 22:39:50

标签: python postgresql heroku

我正在尝试从外部应用程序访问我的 Heroku 数据库。我有 Heroku 应用程序的 postgres url 链接,但我无法从数据库中获取数据。我尝试了以下方法:

import psycopg2
import os

DB_URI=os.environ.get('DATABASE_URL') or 'sqlite:///'+os.path.join(basedir, 'app.db')

conn=psycopg2.connect(DB_URI)
cur=conn.cursor()
cur.execute("SELECT * FROM USER;")

print(cur.fetchone())

但是我得到了一个随机名称而不是我需要的数据。有什么办法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

这是连接到数据库的正确方法。

您与 Postgres 数据库的连接没有问题,因为 psycopg2 会引发 OperationalError 或其他类似的问题。

您使用 SELECT * FROM USER 获得的“随机名称”实际上是您的 Postgres 用户名(Heroku 为您定义的),这正是您执行此查询时所要求的。

您必须编写正确的 SQL 查询,这取决于您的需要。

例如,如果您将数据存储在一个名为 myapp_mytable 的表中,cur.execute("""select * from myapp_mytable""") 将起到很好的作用。