【问题标题】:select data from a database out of my django app从我的 django 应用程序中从数据库中选择数据
【发布时间】:2016-06-25 04:40:33
【问题描述】:

如何从不在我的 django 应用程序中的数据库中选择数据?

我应该如何将我的 django 查询连接到我的 django 应用尚未创建的数据库?

我已经把这段代码放在views.py中:

def select(request):
    p = user.objects.filter(country='Iran')
    return HttpResponse(p)

如果数据库是由 django app 创建的,则需要将此部分添加到views.py: (例如)

from users.models import user

但是我该怎么办呢?

附注:

我在我的 django 项目中使用 pymysl,并在我的 linux 操作系统中安装了 lamp,并使用 phpmyadmin。还需要解释吗?

【问题讨论】:

  • 实际上,如果您只是想连接到数据库并根据数据库引擎的类型对其运行查询,您可以简单地使用相关的 python 配方。或者,如果想做不同的事情,您最好在您的问题中添加Minimal, Complete, and Verifiable example 并使其更清楚。
  • 你要解决什么任务?

标签: python django database select django-apps


【解决方案1】:

根据您对另一个答案的评论,

我们项目的第一个版本是 php,我们想迁移到 python-django 并使用相同的旧数据库。所以我们不能再次创建数据库,我们应该配置我们的 django 项目以使用现有的数据库。

您想在 django 中使用已经存在的遗留数据库。 Django 提供了从旧数据库 (legacy-databases) 创建模型的可能性。

配置旧数据库的数据库设置。然后你可以运行inspectdb 来创建旧数据库的 django 模型:

python manage.py inspectdb > models.py

【讨论】:

【解决方案2】:

Django 在一个实例中支持多个数据库。 您也可以在 python 代码中手动连接到 DB。 例如:

    import psycopg2
    psycopg2.connect(...)

【讨论】:

  • 是的,但我需要一些关于你的任务的信息——你想做什么?
  • 我们项目的第一个版本是 php,我们想迁移到 python-django 并使用相同的旧数据库。所以我们不能再次创建数据库,我们应该配置我们的 django 项目以使用现有的数据库。
  • 那么您使用的是旧 php 应用程序已经准备好的同一个数据库?您将使用相同的表而不改变其结构?
  • 嗯,是的,是的。
  • 在这种情况下,您可以创建模型(或手动或自动使用检查,如下所述)。然后只需给 Django 连接参数: 1. 打开项目根文件夹中的 settings.py。 2. 你有这样的块: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } } 3. 如下设置正确的设置:docs.djangoproject.com/en/1.9/intro/tutorial02
猜你喜欢
  • 1970-01-01
  • 2013-10-06
  • 1970-01-01
  • 1970-01-01
  • 2012-01-01
  • 2019-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多