一.使用Q对象进行限制条件之间 "或" 连接查询

from django.db.models import Q
from django.contrib.auth.models import User Obj = User.objects.filter(Q(name="Bob") | Q(age=28)) # 在用户表中查询name为 Bob 或者 age 为28的对象

二.使用 startwith 和 endswith 进行字段数据起始字符和结尾字符的条件查询

obj = User.objects.filter(name__startswith="X")   # 查询以 "X" 开头的name字段,字段名和关键字之间用两个下划线连接
obj = User.objects.filter(email__endswith = "163.com") # 查询使用了163邮箱的用户

PS:遇到问题没人解答?需要Python学习资料?可以加点击下方链接自行获取

note.youdao.com/noteshare?id=2dce86d0c2588ae7c0a88bee34324d76

三.存在外键时,进行反向查询的方法

假如存在一个Course表,里面存在一个外键字段指向User用户表,在需要进行登录验证的接口中,直接通过request.user的方式就可以得到当前用户的一个user对象,直接使用这个user对象进行反向查询,就可以获取Course表的数据

query_set = request.user.course__set.all()  #  Course表中存在外键字段指向User表,User实例对象.外键所在的表名小写__set.all()

四.直接获取一个查询集下多个查询对象的某几个字段值

1 from .models import UserInfo
5 data_set = UserInfo.objects.all().values_list("user_name", "age", "money", flat=True)
# 返回的数据结构是一个列表,列表里面嵌套的是元组,一个元组,就是一条满足条件的数据,也可以使用values(),返回的是列表嵌套字典格式的数据

Python Django中一些少用却很实用的orm查询方法的更多相关文章

  1. Django 一些少用却很实用的orm查询方法

    一.使用Q对象进行限制条件之间 "或" 连接查询 from django.db.models import Q from django.contrib.auth.models im ...

  2. Python Django中QQ邮箱授权码问题

    Python Django中QQ邮箱授权码问题 系统及软件版本如下: Ubuntu Kylin 16.04 Python 3.5.1 Django 1.9.7 PyCharm Community Ed ...

  3. RSA算法在Python Django中的简单应用

    说明 RSA算法是当今使用最广泛,安全度最高的加密算法. • RSA算法的安全性理论基础 [引]根据百科介绍,对极大整数做因数分解的难度决定了RSA算法的可靠性.换言之,对一极大整数做因数分解愈困难, ...

  4. 45个很实用的 Oracle 查询语句小结

     这里我们介绍的是 40+ 个很实用的 Oracle 查询语句,主要涵盖了日期操作,获取server信息.获取运行状态.计算数据库大小等等方面的查询. 这些是全部 Oracle 开发人员都必备的技 ...

  5. Python Django 中的STATIC_URL 设置和使用解析

    使用Django静态设置时,遇到很多问题,经过艰苦的Baidu, stack overflow, Django原档阅读,终于把静态图片给搞出来了.特记录下来. 关键的概念:Django中,静态资源的存 ...

  6. python Django中的cookie和session

    目录 Cookie 1.1获取Cookie 1.2设置Cookie Session 1.数据库Session 2.缓存Session 3.文件Session 4.缓存+数据库Session Cooki ...

  7. Python - Django - ORM 查询方法

    models.py: from django.db import models class Human(models.Model): id = models.AutoField(primary_key ...

  8. Django中更新多个对象数据与删除对象的方法

    更新多个对象 例如说我们现在想要将Apress Publisher的名称由原来的”Apress”更改为”Apress Publishing”.若使用save()方法,如: ? 1 2 3 >&g ...

  9. django学习-15.ORM查询方法汇总

    1.前言 django的ORM框架提供的查询数据库表数据的方法很多,不同的方法返回的结果也不太一样,不同方法都有各自对应的使用场景. 主要常用的查询方法个数是13个,按照特点分为这4类: 方法返回值是 ...

随机推荐

  1. 如何在MacOS的VScode上安装Python3

    由于MacOS上的VScode默认安装的Python版本是2.7,所以需要我们自己手动安装Python3从Python官网下载最新版本-安装-设置环境变量当然是可行的,但下面要介绍的是另外一种方式:H ...

  2. app点击底部菜单切换标题

    <!DOCTYPE HTML><html><head> <meta charset="utf-8"> <meta name=& ...

  3. HTML的表单初级验证

    HTML的表单初级验证 placeholder(提示信息) required(确保不能为空) pattern(正则表达式验证) 1. placeholder(提示信息) 语法: <p>账号 ...

  4. Jmeter录制https协议不能跳转成功(证书导入)

    原文:  http://www.cnblogs.com/Lam7/p/7154120.html 录制脚本的时候,比如录制https协议的百度网站 https://www.baidu.com ,所有录制 ...

  5. django 外键使用select html

    1.HTML代码: <td> <select id="depend_case" name="depend_case"> <opti ...

  6. Postgresql 教程

    Official 教程 关闭postgresql服务 PostgreSQL帐号 1. PostgreSQL 用户帐号和操作系统用户帐号是不同的,系统用户帐号是postgres. sudo -u pos ...

  7. ORA-01843: not a valid month

    问题描述 ORA-01843: not a valid month oracle数据库插入出现无效的月份

  8. unity命令行参数

    Typically, Unity will be launched by double-clicking its icon from the desktop but it is also possib ...

  9. try/catch/finally 语句

    定义和用法 try/catch/finally 语句用于处理代码中可能出现的错误信息. 错误可能是语法错误,通常是程序员造成的编码错误或错别字.也 可能是拼写错误或语言中缺少的功能(可能由于浏览器差异 ...

  10. FLAG-回归C++,JAVA什么的等学校教吧

    以后刷OJ还是写C++,昂啊! 除非我觉得JAVA更好用