gpt4 book ai didi

python - 在 Django 中打印对象

转载 作者:太空狗 更新时间:2023-10-29 17:40:55 29 4
gpt4 key购买 nike

所以我已经成功地将 Django 连接到一个预先存在的数据库(检查、验证和同步),并且我已经创建了一个应用程序和一个项目以及所有这些(我正在阅读 Django 书并且我正在阅读章节5), 但是当我实际运行它并打印东西时,我得到了一个(假定的)错误。在 python 中,我正确地导入了我需要的东西(from myapp.models import Artist)但是如果我尝试打印,例如,表中的前五行(print Artist.objects .all()[:5]),我明白了:

[<Artist: Artist object>, <Artist: Artist object>, <Artist: Artist object>, <Artist: Artist object>, <Artist: Artist object>]

为什么它实际上不打印值而不是打印占位符?我在这里遗漏了什么吗?

最佳答案

Django 使用 ORM(对象关系映射器)在 Python 对象和数据库行之间来回转换数据。因此,当您使用它从数据库中获取项目时,它会将其转换为 Python 对象。

如果该对象没有定义如何将自身显示为文本,Django 会为您完成。 Python 做同样的事情:

>>> class MyObject(object):
... pass
...
>>> [MyObject(), MyObject()]
[<__main__.MyObject object at 0x0480E650>,
<__main__.MyObject object at 0x0480E350>]

如果您想查看每个对象的行的所有实际值,请使用 values .

这是文档中的示例:

# This list contains a Blog object.
>>> Blog.objects.filter(name__startswith='Beatles')
[<Blog: Beatles Blog>]

# This list contains a dictionary.
>>> Blog.objects.filter(name__startswith='Beatles').values()
[{'id': 1, 'name': 'Beatles Blog', 'tagline': 'All the latest Beatles news.'}]

关于python - 在 Django 中打印对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10150305/

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