【问题标题】:Python/Django database username and password?Python/Django 数据库用户名和密码?
【发布时间】:2016-12-04 12:48:14
【问题描述】:

我正在学习 python,我想了解数据库部分以及在为 postgresql 数据库设置时。

https://docs.djangoproject.com/en/1.9/ref/settings/#databases

所有值都是必需的吗?

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'mydatabase',
        'USER': 'mydatabaseuser',
        'PASSWORD': 'mypassword',
        'HOST': '127.0.0.1',
        'PORT': '5432',
    }
}

具体是USERPASSWORDHOSTPORT?我们可以在 django settings.py 中创建 USERPASSWORD 值吗?或者这是数据库的实际USER/PASSWORD?另外,主机当前是127.0.0.1 用于本地主机,但是在部署到生产环境时,我是否将其更改为域名(http://www.example.com)?还有PORT,有必要吗?

【问题讨论】:

  • 不是答案,但我喜欢单线方式.. DATABASES['default'] = dj_database_url.config(default="postgres://USER:PASSWORD@HOST:PORT/NAME")
  • @RajaSimon 似乎有点不可读,如果你遵守的话,它会违反 PEP-8 行长度约定。
  • 与那个 dict 相比,这一个班轮是最好的......
  • 您也可以使用 djangosecure 来存储您的设置。 stackoverflow.com/questions/24492956/…

标签: python django postgresql


【解决方案1】:

是的! 所有这些信息都是必需的,除非这些值是 指定。

是的! userpassword 是您的 PostgreSQL 数据库的实际凭据。

关于部署,您应该设置生产数据库所在的正确 IP/主机。可能是 example.com 或 xxx.xxx.xxx.xxx

我认为您是 concerned about security(在源代码中显示您的数据库凭据)如果是这种情况,您可以将您的凭据放在安全的配置文件中,例如 .env 并使用 this 库来处理您的配置文件。

【讨论】:

  • 对于用户名和密码,这只是我们自己想出来的,还是应该匹配我已经(或应该)在 postgresql 中拥有的某种用户名和密码?
  • 我想我从来没有为 PostgreSQL 设置过自己的用户名和密码,我的 Mac 上有 PostgreSQL 应用程序,当我启动时,它只是启动,所以我怎么知道我的实际凭据是? @阙
  • 首先您需要使用数据库管理工具(我认为是 pgAdmin)创建一个数据库,当您使用 pgAdmin 创建数据库时,您将被提升为输入密码。那是你的密码。如果你这样做有困难。看看这个 [youtube.com/watch?v=ghTksCsFBcI] YouTube 教程,这个家伙在视频的结尾展示了如何创建一个数据库。
【解决方案2】:

具体是 USER、PASSWORD、HOST、PORT?是 USER 和 PASSWORD 值 我们可以在 django settings.py 中创建吗?或者这是实际的 数据库的用户/密码?此外,HOST 当前为 127.0.0.1 localhost,但是在部署到生产环境时,我是否将其更改为 域名(http://www.example.com)?还有PORT,有必要吗?

USERPASSWORD是你在数据库中配置的,然后你在文件中输入。

HOST 是服务器运行的 IP 地址或主机名。在生产中,您必须向您的托管服务提供商咨询正确的详细信息;它很少是您的域名。

PORT 与默认端口 (5432) 不同时,您只需进行调整。如果不一样,你的主人会告诉你的。

最后,请记住http://www.example.com 不是域名,这是完整的 URL。域名为example.com,主机为www,全限定主机名www.example.com

【讨论】:

  • 对于 mac postgres 应用程序,默认情况下,如果我的环境正在开发中并且我在 root(主帐户)中工作,我不需要输入用户名和密码,对吗?当我在使用 Ruby on Rails 时,我从未在我的数据库中为 postgresql 设置用户名和密码。
【解决方案3】:

是的。 See here 用于 Django 2.1 或其他版本。您可以执行以下操作:

  1. 登录 Heroku
  2. 转到资源
  3. 搜索 Postgres(免费版/爱好)
  4. 然后点击新生成的数据库链接
  5. 转到设置下的管理员,转到凭据

然后您可以在您的 Django 生产设置中添加这些变量,最好保密并称为环境变量 (),或者您可以在 Heroku CLI 中定义(在 Windows 中使用 SET 命令)。 More explanation here.

【讨论】:

    猜你喜欢
    • 2018-02-13
    • 2016-02-05
    • 1970-01-01
    • 2012-05-08
    • 1970-01-01
    • 2013-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多