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'>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)