文档章节

django获取指定列的数据

丰_申
 丰_申
发布于 2017/02/17 15:14
字数 320
阅读 3353
收藏 0
点赞 0
评论 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
博文 178
码字总数 114690
作品 0
深圳
QA/测试工程师
Django 操作Mysql数据库 对表进行增删改查

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

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

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

猴哥Yuri
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
Django模型类Meta元数据详解

简介 使用内部的class Meta 定义模型的元数据,例如: 当orderwithrespectto 设置之后,模型会提供两个用于设置和获取关联对象顺序的方法:getRELATEDorder() 和setRELATED_order(),其中REL...

楠木楠
2016/09/25
423
0
【转】Django 数据库的操作

class Publisher(models.Model): VALUES WHERE id = 52; FROM book_publisher; 相当于SQL语句:SELECT FROM book_publisherWHERE name = 'NewName'; 缩小范围:Publisher.objects.filter(co......

寂寞的远行者
2012/08/02
0
0
第十章: 数据模型高级进阶

第十章: 数据模型高级进阶 在第5章里,我们介绍了Django的数据层如何定义数据模型以及如何使用数据库API来创建、检索、更新以及删除记录 在这章里,我们将向你介绍Django在这方面的一些更高...

阿帆提
2016/11/10
5
0
Django聚合查询用法

聚合 Django 数据库抽象API 描述了使用Django 查询来增删查改单个对象的方法。然而,有时候你需要获取的值需要根据一组对象聚合后才能得到。这份指南描述通过Django 查询来生成和返回聚合值的...

楠木楠
2016/09/26
539
0
Django 1.10中文文档-聚合

目录 速查表 QuerySet 聚合 QuerySet 逐个对象的聚合 Join 和聚合 聚合 QuerySet 子句 正文 Django 1.10 中文文档:https://github.com/jhao104/django-chinese-doc Django 数据库抽象API 描述...

xjtuhit
2017/10/20
0
0
django 1.8 官方文档翻译: 2-1-3 元选项 (初稿)

Django 文档协作翻译小组人手紧缺,有兴趣的朋友可以加入我们,完全公益性质。 交流群:467338606 网站:http://python.usyiyi.cn/django/index.html 模型元选项 这篇文档阐述了所有可用的元...

apachecn_飞龙
2015/07/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

ES15-JAVA API 索引管理

1.创建连接 创建连接demo package com.sean.esapi.client;import java.net.InetSocketAddress;import org.elasticsearch.action.get.GetResponse;import org.elasticsearch.clien......

贾峰uk
9分钟前
0
0
单点登录的设计,从单域名到多域名(经验分享)

个人实践总结,最初的的需求,多个产品线都在同一个根域名下面。 独立的用户中心分离,单独负责用户登录和用户信息获取、变更等处理逻辑。 第一步,用户登录成功,分配给用户一个memToken(令...

小海bug
10分钟前
0
0
合格前端第十二弹-TypeScript + 大型项目

写在前面 TypeScript 已经出来很久了,很多大公司很多大项目也都在使用它进行开发。上个月,我这边也正式跟进一个对集团的大型运维类项目。 项目要做的事情大致分为以下几个大模块 一站式管理...

qiangdada
14分钟前
0
0
编程学习之如何在Node.js中优化服务器端渲染?[图]

编程学习之如何在Node.js中优化服务器端渲染?[图] 在 Airbnb,我们花了数年时间将所有前端代码迁移到 React 架构,Ruby on Rails 在 Web 应用中所占的比例每天都在减少。实际上,我们很快会...

原创小博客
16分钟前
0
0
gradle学习笔记

相关文档 适合新手的 gradle 自学教程合集 Gradle教程

OSC_fly
30分钟前
0
0
Virtual Serial Port - RFC2217

Virtual Serial Port for Linux RFC-2217 The COM Port Control Protocol pyserial - RFC 2217 NetSerial - Windows Telnet COM Port - RFC Official Using Python, How do I make a virtual......

zungyiu
37分钟前
0
0
全球的IPv6部署急剧增加,中国进度较慢

导读 全球的IPv6部署继续增加,但中国在IPv6方面还需要努力,从部署图上分析,中国几乎没有几个地方是普及IPv6的。这6年来,自世界IPv6发布以来,全球网络和服务提供商的IPv6部署水平急剧增加...

问题终结者
41分钟前
1
0
好看的电影记录

星际迷航三 狂暴之路 新木乃伊 黑夜传说 铁血战士2

xd03122049
44分钟前
0
0
记录Yii2框架开发遇到微信错误提示

转载地址 记录Yii2框架开发遇到微信错误提示 微信公共号开发,提示“该公众号暂时无法提供服务,请稍后再试”,如何解决? 以前使用Yii框架的时候,并没有像Yii2,以前的Yii框架似乎用起来在...

durban
47分钟前
1
0
LSM树(Log-Structured Merge Tree)存储引擎浅析

其实每一种数据库,它都是一种抽象的数据结构的具体实现。 随着rocksDB(facebook的),levelDB(google的),以及我们熟知的hbase,他们都是使用的LSM树结构的数据库。 它的核心思路其实非常...

算法之名
今天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部