文档章节

django获取指定列的数据

丰_申
 丰_申
发布于 2017/02/17 15:14
字数 320
阅读 4619
收藏 0

model一般都是有多个属性的,但是很多时候我们又只需要查询特定的某一个,这个时候可以用到valuesvalues_list

[values()](https://docs.djangoproject.com/en/1.9/ref/models/querysets/#values)
values()¶

values(*fields)¶
Returns a QuerySet that returns dictionaries, rather than model instances, when used as an iterable.

Each of those dictionaries represents an object, with the keys corresponding to the attribute names of model objects.
[values_list()](https://docs.djangoproject.com/en/1.9/ref/models/querysets/#values-list)
values_list()¶

values_list(*fields, flat=False)¶
This is similar to values() except that instead of returning dictionaries, it returns tuples when iterated over. Each tuple contains the value from the respective field passed into the values_list() call — so the first item is the first field, etc.

看下面的代码:

利用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'>

© 著作权归作者所有

共有 人打赏支持
丰_申
粉丝 10
博文 179
码字总数 114855
作品 0
深圳
QA/测试工程师
私信 提问
Django 操作Mysql数据库 对表进行增删改查

首先说明:以下方法都是根据表已有的字段添加数据,若想新增字段,则需在类里面新建静态字段, 可参考Django 操作数据库建表 ,增删改查在views.py 操作, 建表和字段在models.py 操作 1、首...

明月知心
2016/12/09
1K
1
Django 学习笔记之模型高级用法(下)

接着上篇文章内容,本文分享自己对模型一些用法的总结。 1 模型的元数据Meta 除了抽象模型,在模型中定义的字段都会成为表中的列。如果我们需要给模型指定其他一些信息,例如排序方式、数据库...

猴哥Yuri
2018/04/27
0
0
Django 操作数据库三

null 如果为 True ,Django 将用 NULL 来在数据库中存储空值。 默认值是 False . blank 如果为 True ,该字段允许不填。默认为 False 。在Django admin 中是否为空 要注意,这与 null 不同。...

明月知心
2016/12/08
23
0
Python自动化运维:Django基础

Django 框架 Django基于python语言写的全栈一体式的开源web开发框架, 遵循MVC框架设计。 既然是遵循, 那么肯定有自己的特点, 所以他对MVC进行精简和演变后的框架名称是 MTV。 Model(模型)...

炫维
2017/11/02
0
0
Python Web 应用程序 Django 框架简介

在这个比较 Python 框架的最后一篇中,让我们看看 Django。 在本系列(由四部分组成)的前三篇文章中,我们讨论了 Pyramid、Flask 和 Tornado 这 3 个 Web 框架。我们已经构建了三次相同的应...

作者: Nicholas Hunt-walker
2018/11/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Hive性能优化

Hive设置参数的三种方法 Hive提供三种可以改变环境变量的方法,分别是:(1)、修改${HIVE_HOME}/conf/hive-site.xml配置文件;(2)、命令行参数;(3)、在已经进入cli时进行参数声明。下面...

hblt-j
2分钟前
0
0
快速使用github发布axure原型

前言 axure生成的原型图可以在自带的Axure share上使用,公司内网也可以直接放在本地访问,也可以打包成html文档给研发同事访问。这里我只是想将我的作品传到github上,并使其他人可以远程访...

铸剑为犁413
4分钟前
0
0
零基础学算法->质数

质数的定义 质数(Prime number),又称素数,指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两个正因数的数) 大于1的自然数若不是素数,则...

tedzheng
14分钟前
0
0
C++程序中可以没有using namespace std;这一句吗

可以啊、、只是命名空间的声明而已。意思就是说下面的函数,如果有和stl库里面一个名字的,就是用的stl的函数 C++ using namespace std 详解  所谓namespace,是指标识符的各种可见范围。C...

天王盖地虎626
15分钟前
0
0
string类回顾

writeademo
19分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部