来自数据库模型的值(Django)

2024-05-18 17:43:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个模型

class Type(models.Model):
    type = models.CharField(max_length=50)
    value = models.CharField(max_length=1)

在它里面,我有一些来自sql文件的数据:

INSERT INTO quest_type (type, value) VALUES ('Noun', '1');
INSERT INTO quest_type (type, value) VALUES ('Adjective', '2');
INSERT INTO quest_type (type, value) VALUES ('Duration', '3');

如何在python shell中访问这些值?例如,如果我知道类型,如何获得值(反之亦然)?我不知道语法是怎么工作的。你知道吗


Tags: 模型sqlmodelvaluemodelstypelengthmax
3条回答

你应该可以用它

Type.objects.filter(type=typeImInterestedIn)

有几件事需要了解: -您可能希望避免手动写入正在使用ORM的DB。它只会造成潜在的不匹配。 -命名对象类型几乎没有问题,因为它非常接近python本机函数类型。你知道吗

如果您使用的是来自django(python)的python shell管理.pyshell)首先,您必须将您的模型导入到您的命名空间中,因此从my_应用模型导入类型。你知道吗

现在,如果只想从db中获取一个对象,语法是:

result = Type.objects.get(type='your_query')

如果要获取多个对象,则一个对象语法如下所示:

result = Type.objects.filter(type='your_query')

第二个方法返回列表而不是单个对象

要在使用筛选器写入后循环列表,请执行以下操作:

for item in result:
    item.value #will print values from matched rows

你的问题不清楚你对数据库了解多少,所以如果这个答案对你来说太基本,我很抱歉(如果是这样,请编辑你的问题,包括你正在使用的实际数据库引擎的信息,并展示一些试图从数据库中读取的示例代码)。你知道吗

您拥有的SQL文件与SQL数据库不同。它是一系列在SQL数据库中创建记录的命令。首先,必须在计算机上安装并配置数据库引擎,然后“运行”该.sql文件,以便在数据库中创建记录。你知道吗

在您拥有一个实际的数据库之后,您必须配置Django,以便它知道您使用的是哪种SQL引擎以及数据库的名称和位置。你知道吗

最后,一旦创建了数据库并将Django配置为与引擎对话,您将编写python代码来实例化Type类的实例,从数据库中读取记录,并检查值。你知道吗

另外,让我指出,Type对于任何编程语言中的类来说都是非常非常糟糕的名称,typevalue对于SQL数据库中的列来说都是糟糕的名称。你知道吗

相关问题 更多 >

    热门问题