gpt4 book ai didi

django - 如何在 Django 应用程序中访问 PostgreSQL 数据库

转载 作者:搜寻专家 更新时间:2023-10-30 20:34:17 25 4
gpt4 key购买 nike

我创建了一个简单的 Django 应用程序,它尝试访问 PostgreSQL 数据库中名为 fruits 的表并显示其内容。据我所知,我遵循了官方 Django 文档并实现了以下代码。但我认为以下过程不完整,因为 fruits.objects.all() 无法获取任何数据。我遗漏了一些东西,任何人都可以指出任何帮助,我们将不胜感激。

表:水果

enter image description here

模型.py

from django.db import models

class fruits(models.Model):
ID = models.CharField(max_length=20)
Name = models.CharField(max_length=20)

def __str__(self):
return self.Name

views.py

from database.models import fruits

def index(request):
data = fruits.objects.all()

print(len(data))

for item in data:
print(item)

settings.py

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': '<database_name>',
'USER': '<user_name>',
'PASSWORD': '<password>',
'HOST': '<host_name>',
'PORT': '',
}
}

最佳答案

默认情况下,Django 将为模型创建新表 appname_modelname。因此,在您的情况下,此查询集 fruits.objects.all()app_fruits 表中获取数据,而不是 fruits。您可以使用 db_table 指定表名元选项。例如,要将模型 fruits 与现有表 fruits 相链接,请将以下 Meta 添加到模型中:

class fruits(models.Model):
ID = models.IntegerField(max_length=20)
Name = models.CharField(max_length=20)

class Meta:
db_table = 'fruits'

def __str__(self):
return self.Name

UPD

Django 期望 id 字段默认为主键而不是 ID,要更改此添加 primary_key ID 字段的选项:

ID = models.IntegerField(max_length=20, primary_key=True)

关于django - 如何在 Django 应用程序中访问 PostgreSQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48962852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com