我正在尝试从外部应用程序访问我的 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())
但是我得到了一个随机名称而不是我需要的数据。有什么办法可以解决这个问题吗?
答案 0 :(得分:0)
这是连接到数据库的正确方法。
您与 Postgres 数据库的连接没有问题,因为 psycopg2
会引发 OperationalError
或其他类似的问题。
您使用 SELECT * FROM USER
获得的“随机名称”实际上是您的 Postgres 用户名(Heroku 为您定义的),这正是您执行此查询时所要求的。
您必须编写正确的 SQL 查询,这取决于您的需要。
例如,如果您将数据存储在一个名为 myapp_mytable
的表中,cur.execute("""select * from myapp_mytable""")
将起到很好的作用。