Django Model获取指定列的数据
model一般都是有多个属性的,但是很多时候我们又只需要查询特定的某一个,这个时候可以用到values
和values_list
利用values查询
from attendence.models import Employee from attendence.models import EmployeeIP #获取一个字段 ipList = EmployeeIP.objects.values("IP").first() print(type(ipList)) # <class 'dict'> print(ipList) # {'IP': '192.168.1.41'} #获取多个字段 empList = Employee.objects.values("first_name", "last_name", "email")[0:2] print(type(empList)) # <class 'django.db.models.query.QuerySet'> print(empList) # [ # {'last_name': 'Wei', 'first_name': 'Vena', 'email': 'Vena@test.com'}, # {'last_name': 'Wan', 'first_name': 'Mark', 'email': 'mwan@test.com'} # ]
利用values_list查询
ipList = EmployeeIP.objects.values_list("IP").first() print(type(ipList)) # <class 'tuple'> print(ipList) # ('192.168.1.111',) ipList = EmployeeIP.objects.values_list("IP")[0:2] print(type(ipList)) # <class 'django.db.models.query.QuerySet'> print(ipList) # [('192.168.1.41',), ('192.168.1.44',)] print(type(ipList[0])) # <class 'tuple' > print(ipList[0]) # 192.168.1.111
values和values_list的差别
从上面的代码中我们可以看到返回结果类型上细微的差别
- vlaues -
- 单条记录 -
<class 'dict'>
- 多条记录 -
<class 'django.db.models.query.QuerySet'>
- 单条记录 -
- vlaues_list -
- 单条记录 -
<class 'tuple'>
- 多条记录 -
<class 'django.db.models.query.QuerySet'>
- 单条记录 -
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了