【问题标题】:How to use dj-database-url while connecting with postgresql in heroku using python使用python在heroku中连接postgresql时如何使用dj-database-url
【发布时间】:2012-06-07 17:50:12
【问题描述】:

我来到这里是因为我对 heroku-python-django-postgresql 组真的很陌生。我搜索了 dj-database-url 的用法,但我不明白为什么在开发需要与 postgresql 连接的 python 应用程序时必须使用它。我已将 postgresql(开发版)作为附加组件添加到我的应用程序中,但我不知道如何告诉应用程序我希望它使用我的数据库。

所以,简短的问题是,我如何向 dj-database-url 表明我想使用我的数据库?

感谢您的时间和回答,非常感谢您的帮助,因为这非常紧急!

【问题讨论】:

    标签: python postgresql heroku


    【解决方案1】:

    dj-database-url 是一个实用程序,可帮助您将数据库从 DATABASE_URL 环境变量加载到字典中。 Heroku 为您的数据库和其他插件使用环境变量。要开始使用您的数据库,您只需使用以下命令来设置您的 DATABASES 字典:

    import dj_database_url
    DATABASES['default'] = dj_database_url.config()
    

    也许在你的 virtualenv 激活脚本中存储 DATABASE_URL。

    【讨论】:

    • 如何设置本地开发环境,让heroku需要的设置在本地环境中也能正常工作?
    • 如果你运行 export DATABASE_URL=yourlocaloryourremotedburl 那么它应该和 Heroku 一样工作。此外,如果您使用与 heroku 工具带一起安装的工头,它将自动导出 .env 文件中的值。
    • 只是一个注释。 default 关键字参数是可选的。如果不指定,则默认查找DATABASE_URL env 变量。
    • 使用它会导致构建失败并出现错误“NameError: name 'DATABASES' is not defined。”
    【解决方案2】:

    使用 pip 模块 dj-database-url。添加一个名为“DATABASE_URL”的环境变量和来自 heroku db 设置的值。

    重要的是,为了避免错误'NameError: name 'DATABASES' is not defined。' 例如,您仍然必须保留默认的 DATABSE 设置。

    完整代码:

    import dj_database_url
    
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.sqlite3',
            'NAME': 'mydatabase',
        }
    }
    DATABASES['default'] = dj_database_url.config()
    

    【讨论】:

      【解决方案3】:

      可能对setting.py中的参数有帮助

      DATABASES = {
          "default": dj_database_url.config(
              default="postgres://postgres:saleor@localhost:5432/saleor", conn_max_age=600
          )
      }
      

      默认字符串中的“database url”有值 postgresql://[user[:password]@][netloc][:port][/dbname][?param1=value1&...]

      【讨论】:

        猜你喜欢
        • 2020-05-04
        • 1970-01-01
        • 2011-01-11
        • 2021-10-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-03
        相关资源
        最近更新 更多