美文网首页
查询操作

查询操作

作者: 想旅游的程序员 | 来源:发表于2018-10-12 15:18 被阅读0次

[TOC]

查询操作

查询数据的操作一般都是数据操作中比较复杂的一部分,针对不同那个的操作方式进行分类讲解,为了方便进行快速的操作,我们通过Django提供的一个shell测试命令进行处理

进入项目主目录文件夹,运行如下命令进入项目测试命令行
python manager.py shell
此时就进入了sehll环境,我们进行各种操作即可

#引入blog下的models模块
>>> from blog import models
#添加一个新用户
>>> user = models.User(name='test',nickname='test',age=23)
#进行保存
>>> user.save()

这样就增加了一条数据,如果要删除,则调用删除方法

>>> user.delete()
(1,{'blog.Article':0,'blog.User':1})

查询多条数据

  • all()查询全部数据
  • filter([condition])查询指定条件数据,如果没有指定条件,等同于all()
  • exclude([condition])查询指定条件之外的数据,如果没有指定条件,等同于all()
  • order_by()根据指定的字段进行排序查询,字段前面添加符号'-'表示倒序
  • values()将查询到的数据转换成字典,保存在列表中返回

all的使用

>>> models.User.objects
<django.db.models.manager.Manager object at 0x000000003C759E8>
>>> users = models.User.objects
>>> all = users.all()
>>> all
#返回所有的用户信息
<QuerySet [<User:User object>,<User:User object>,<User:User object>]>
#查询第一个用户的用户名
>>> all[0].name
'zhengyuchao'
>>>for u in all:
...     print(u.name,u.nickname,u.age)
...
zhengyuchao 郑玉超 23
yaojuan 大娟 23

all方法返回所有数据,相当于查询所有数据。注意返回的是一个QuerySet的查询集合,如果需要取值,则需要通过下标索引查找

filter方法获取符合条件的QuerySet

图片.png

大部分情况来说pk和id是一样的,我们知道pk代表primary key的缩写,也就是任何model中都有的主键,那么id呢,大部分时候也是model的主键,所以在这个时候我们可以认为pk和id是完全一样的。

exclude方法查找条件不符合的,和filter方法正好相反

图片.png

order_by()方法

根据传递的属性名称进行排序,如果属性前加一个-(负号),则表示倒序排列,否则正序排列


图片.png

values()方法

将查询到的数据转换成字典,保存在列表中


图片.png

查询一条数据

get([condition])查询指定条件的数据,返回0条或者多条都会出现异常

  • count()返回查询到的结果的总数
  • first()返回查询到的第一条数据
  • last()返回查询到的最后一条数据
  • exists()判断查询结果中是否包含数据

get()方法

图片.png

注意:get方法和filter方法的区别,主要由两点区别

  1. get获取的是一个对象、而filter获取的是一个列表
  2. get如果获取不到值(没有条件符合),则报错,而filtr会返回一个空列表

count()方法

count方法,返回符合条件的数量。


图片.png

first方法和last方法

返回符合条件的第一条和最后一条


图片.png

exists()方法

判断符合条件的数据是否存在


图片.png

条件查询

  • 相等条件查询 key=value
  • 包含条件查询 key_contains=value:模糊查询like
  • 开头结尾查询 key__startswith key__endswith=value
  • 是否为空查询 key__isnull=True key__isnotnull=True
  • 范围查询 key__in=[1,2,3,4,5,6,7]
  • 关系查询
    • key__gt=1 大于1
    • key__gte=1 大于等于1
    • key__ly=1 小于1
    • key__lte=1 小于等于1
    • 日期查询[year/month/day/week_day/hour/minute/second]
    • key__year=2014


      图片.png
图片.png

多条件查询Q

使用filter进行多次过滤或者在一个filter中通过都好间隔多个提交。


图片.png

如果是或者的关系,Django为我们提供了一个比较好用的Q,完成多条件的查询,使用Q对象,首先需要引入Q对象,有了 Q 对象后,我们就可以多条件的查询了,不管是并且、或者、非的逻辑都可以完成了。这个就是查询对象 Q。

图片.png

查询原值对象F

可能需要将一些原有的数据可额能进行操作,如年龄加一。


图片.png

传统的手段,我们需要先查询出这个对象,之后在该对象的age加一,之后在保存这个对象,完成数据的更新,比较麻烦
Django针对这种情况,为大家设计了一个F对象,这个对象可以很快的查询出原有对象的值

图片.png

返回的 1 表示有一条数据被更新了。F 对象在我们进行 Django 数据查询的时候,能够辅助我们快速取到对象原有的值,方便我们进行各种操作。所以 F 对象是原有值对象。

相关文章

  • MongoDB学习 (六):查询

    目录 查询操作 集合查询方法 find() 查询内嵌文档 查询操作符(内含 数组查询) "$gt" 、"$gte"...

  • mysql 简单的 增 删 改 查

    插入操作: 删除操作: 更新操作: 查询操作:

  • MySQLi面向过程:实现数据库的CURD操作

    数据增添: 更新、删除操作: 预处理写法: 查询操作: 查询语句+遍历

  • hibernate学习(四)

    这一章讲的是更深入的查询操作,包括各种常用的查询操作。分别用hql语言查询和标准语言查询实现。 查询所有 条件查询...

  • HiveQL 数据查询

    HiveQL 查询操作 SQL操作•基本的Select 操作•基于Partition的查询•Join 基本的Sel...

  • 查询操作

    [TOC] 查询操作 查询数据的操作一般都是数据操作中比较复杂的一部分,针对不同那个的操作方式进行分类讲解,为了方...

  • 查询操作

    [TOC] 查询操作 查询数据的操作一般都是数据操作中比较复杂的一部分,针对不同那个的操作方式进行分类讲解,为了方...

  • 查询操作

    /* 修改一条记录 使用 DBUtils技术 修改pid为10的 将 价格修改为10 */public cla...

  • 查询操作

    查找数据 db.students.find() 格式化返回 db.students.find().pretty()...

  • Tp5_查询构造器,实现增删改查操作.

    1.插入操作//单挑数据 //多条数据 2.更新操作 3.查询操作查询单条字段 4.删除操作

网友评论

      本文标题:查询操作

      本文链接:https://www.haomeiwen.com/subject/xclgaftx.html