关于如何在 Django 应用程序中处理 PostgreSQL 数据库的建议?

Posted

技术标签:

【中文标题】关于如何在 Django 应用程序中处理 PostgreSQL 数据库的建议?【英文标题】:Advice on how to handle PostgreSQL database in Django app? 【发布时间】:2020-03-22 12:27:37 【问题描述】:

在某些背景下,我曾在一个具有 SQLite3 数据库的 Django 应用程序上工作。我刚刚使用python manage.py startapp model_name 在 Django 中创建了模型,并且只是通过在 python 中创建 API 端点来直接操作数据库。然后我会发出 API 请求并像那样更改我的数据库。

但这一次,我创建了一个具有 PostgreSQL 数据库的 Django 应用程序。在弄清楚如何安装 psycopg2 之后,我设法将我的数据库连接到 Django。然后,我通过命令行在 PostgreSQL 中创建了一个用户表。我想让这张表显示在我的 Django 管理站点上,并希望对其他应用程序重复相同的方法。但是 Django 管理站点只能呈现已注册到管理员的 Django 模型。所以现在,我想知道是否有更好的方法在 Django 中使用 PostgreSQL。

我看到SO posts 建议inspectdb,但这会创建一个大的models.py 文件,为我的应用程序生成其他类。我也无法成功地将用户模型注册到 Django 管理站点。我现在很好奇我是否朝相反的方向工作。我应该在 Django 中生成用户模型,然后从那里生成我的 PostgreSQL 数据库吗?

基本上,有人可以解释如何在 Django 应用程序中使用 PostgreSQL 数据库吗?

【问题讨论】:

您应该使用迁移在数据库中创建表 【参考方案1】:

您能更具体地回答您的问题吗? 如果你对如何在 django admin 中注册 User 表感到困惑,你可以在 admin.py 中注册它。但是注册的方法取决于你使用的用户模型的类型。您可以看到自定义用户模型的docs。

要获取数据库中的用户表,您需要进行迁移:

python manage.py makemigrations
python manage.py migrate

如果您需要任何帮助,请告诉我。

【讨论】:

基本上,我如何让我的 PostgreSQL 数据库(已经附加到我的 Django 应用程序)显示在 Django 管理站点上?我试图在 admin.py 中注册它,但失败了。我相信我遇到的困难是因为我将 PostgreSQL 与 Django 一起使用。 好的,您所要做的就是使用您已经提到的inspectdb。因此,您将在 models.py 文件中获取数据库的所有表。现在,您可以根据需要将其分离到不同的应用程序中。现在,在各自的 admin.py 文件中注册每个模型。现在您可以迁移它了。就是这样。 我已经想通了,我应该更明确一点(这就是我接受你的回答的原因)。还是谢谢你!

以上是关于关于如何在 Django 应用程序中处理 PostgreSQL 数据库的建议?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Django 中处理并发请求?

Django:如何计算查看的人数

如何在 Django Web 应用程序中处理登录 API

django:如何将传入的 POST 数据作为类似文件的 obj 进行流处理

在 Django 视图中处理多个 POST 请求

django:通用类视图 + POST = HTTP 405(不允许的方法)