【问题标题】:Connecting ElephantSQL with Python将 ElephantSQL 与 Python 连接起来
【发布时间】:2017-06-03 05:59:13
【问题描述】:

我想将 ElephantSQL 与 Python 连接起来。

import os
import psycopg2
import urlparse

urlparse.uses_netloc.append("postgres")
url = urlparse.urlparse(os.environ["MY_DATABASE_URL"])

conn = psycopg2.connect(database=url.path[1:],
  user=url.username,
  password=url.password,
  host=url.hostname,
  port=url.port
)

但我得到错误:

Traceback(最近一次调用最后一次): 文件“test.py”,第 217 行,在 url = urlparse.urlparse(os.environ["MY_DATABASE_URL"]) getitem 中的文件“/usr/lib/python2.7/UserDict.py”,第 23 行 引发 KeyError(键) KeyError: 'MY_DATABASE_URL'

作为 my_database_url 我从 ElephantSQL (postgres://my_username:my_password@my_hostname/my_databasename) 编写 url

我做错了什么?

【问题讨论】:

  • 您的环境中不存在该密钥

标签: python postgresql psycopg2 urlparse


【解决方案1】:

我用过:

conn = psycopg2.connect("dbname='my_dbname' user='my_user' host='my_host' password='my_password'")

它现在正在工作。

【讨论】:

    【解决方案2】:

    我已经尝试过 ElephantSQL documentation 但 urllib.parse 步骤不起作用。我按照 ElephantSQL 文档语法建议的上述解决方案直接添加了 psycopg2.connect 参数。

    postgres://username:password@hostname:port/database

    import psycopg2
    
    conn = psycopg2.connect(database="database", user="username", password="password", host="hostname", port="port")
    

    【讨论】:

      【解决方案3】:

      我用过这段代码

      url = up.urlparse("DATABASE_URL")
      

      而不是您找到的url = up.urlparse(os.environ["DATABASE_URL"]) 代码ElephantSQL documentation

      然后我用了

      conn = psycopg2.connect(database=url.path[1:], user=url.username, password=url.password, host=url.hostname, port=url.port )
      

      之后,我就可以连接大象sql实例了

      【讨论】:

        猜你喜欢
        • 2020-03-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-08
        • 2018-02-01
        • 2017-06-08
        • 2017-07-29
        • 1970-01-01
        相关资源
        最近更新 更多