[django]django的orm查询】的更多相关文章

Django框架 之 ORM查询操作详解 浏览目录 一般操作 ForeignKey操作 ManyToManyField 聚合查询 分组查询 F查询和Q查询 事务 Django终端打印SQL语句 在Python脚本中调用Django环境 其他操作 一.一般操作 必知必会 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 <1> all():                 查询所有结果    <2> f…
1.前言 django的ORM框架提供的查询数据库表数据的方法很多,不同的方法返回的结果也不太一样,不同方法都有各自对应的使用场景. 主要常用的查询方法个数是13个,按照特点分为这4类: 方法返回值是可迭代对象QuerySet:all(),filter(),exclude(),order_by(),reverse(),values(),values_list(),distinct(): 方法返回值是单个对象:get(),first(),last(): 方法返回值是布尔值:exists(): 方法…
ORM 查询管理器 对于 ORM 定义: 对象关系映射, Object Relational Mapping, ORM, 是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换.从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”.ORM 能大大简化并抽象数据库的操作. 假设 django 的一个工程中包含一个名为 Book 的模块(model), 在 views.py 的函数中可能会写出查询语句: # views.py def index(request):…
Django ORM 查询管理器 ORM 查询管理器 对于 ORM 定义: 对象关系映射, Object Relational Mapping, ORM, 是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换.从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”.ORM 能大大简化并抽象数据库的操作. 假设 django 的一个工程中包含一个名为 Book 的模块(model), 在 views.py 的函数中可能会写出查询语句: 1 2 3 4 5 6 #…
ORM查询总结: models.Book.objects.filter(**kwargs): querySet [obj1,obj2] models.Book.objects.filter(**kwargs).values(**kwargs) : querySet [{},{},{}] models.Book.objects.filter(**kwargs).values_list(title) : querySet [(),(),()] 跨表查询总结: class Book(models.Mo…
一    F查询与Q查询: 1 . F查询: 在上面所有的例子中,我们构造的过滤器都只是将字段值与某个常量做比较.如果我们要对两个字段的值做比较,那该怎么做呢? Django 提供 F() 来做这样的比较.F() 的实例可以在查询中引用字段,来比较同一个 model 实例中两个不同字段的值. 示例1: 查询评论数大于收藏数的书籍 from django.db.models import F models.Book.objects.filter(commnet_num__gt=F('keep_nu…
day70 ORM训练专题 :http://www.cnblogs.com/liwenzhou/articles/8337352.html 内容回顾     1. ORM         1. ORM常用字段和属性             1. AutoField(primary_key=True)             2. CharField(max_length=32)             3. IntgerField()                          4. Da…
前戏 在我们之前操作ORM中,你也许是启动Django项目,通过地址访问固定的函数,或者在pycharm里的python console里执行,第一种比较麻烦,而且每次都要启动项目,写路由,第二种虽然不需要写路由,但是写的东西保存不下来,只要关闭就没有了.今天来通过python脚本的形式来写,既不需要启动项目,也可以保存 在项目下面创建一个python文件,里面写如下代码 import os if __name__ == "__main__": os.environ.setdefaul…
models.py: from django.db import models class Human(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=32) age = models.IntegerField() birthday = models.DateField(auto_now_add=True) 在数据库中添加几条数据 在 Python 脚本中调用 Dj…
django orm 查询 1 字段后(db_column='age') (null=True)#表示数据库里面的该字段数据可以为空 (blank=True)#表示前端表单提交的时候可以为空 (db_index=True)#表示给该字段建立索引 (help_test='这个事说明')#提示说明 (editable=False) #表示这个字段内容不能被编辑 (unique_for_date=True)#表示日期必须唯一 (unique_for_month=True)#表示月份必须唯一 (auto…
一.聚合查询和分组查询 1.聚合查询aggregate 关于数据表的数据请见上一篇:Django 学习 之ORM多表操作(点我) aggregate(*args, **kwargs),只对一个组进行聚合 # (1)计算所有图书的平均价格 from django.db.models import Avg, Sum, Count, Max, Min avg_price = models.Book.objects.all().aggregate(Avg("price")) print(avg…
前言 查找是数据库操作中一个非常重要的技术.查询一般就是使用filter.exclude以及get三个方法来实现.我们可以在调用这些方法的时候传递不同的参数来实现查询需求.在ORM层面,这些查询条件都是使用field+__+condition的方式来使用的.以下将那些常用的查询条件来一一解释. 查询条件 exact 使用精确的=进行查找.如果提供的是一个None,那么在SQL层面就是被解释为NULL.示例代码如下: article = Article.objects.get(id__exact=…
Django基础四之测试环境和ORM查询 目录 Django基础四之测试环境和ORM查询 1. 搭建测试环境 1.1 测试环境搭建方法: 1.2 使用测试环境对数据库进行CURD 1.3 返回QuerySet对象的方法 1.4 返回具体对象的方法 1.5 返回布尔值的方法 1.6 返回数字的方法 1.7 范围查找(双下划线查询) 1.8 外键字段操作 2. 跨表查询 2.1 正向查询和反向查询 2.2 基于对于的跨表查询(子查询) 2.3 双下划线跨表查询(连表查询) 3. 聚合查询 4. F查…
Django的数据库API查询经常包含关键字参数.例如: bob_stories = Story.objects.filter(title_contains='bob', subtitle_contains='bob', text_contains='bob',byline='bob') 下面展示如何按字典形式传递这些关键字参数: bobargs = {'title_contains': 'bob', 'subtitle_contains': 'bob', 'text_contains': 'b…
day70 练习题:http://www.cnblogs.com/liwenzhou/articles/8337352.html import os import sys if __name__ == '__main__': # 加载Django项目的配置信息 这一句就在manage.py文件中 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ormday70.settings") # 导入Django,并启动Dja…
day69 参考:http://www.cnblogs.com/liwenzhou/p/8660826.html 在Python脚本中调用Django环境 orm1.py import os if __name__ == '__main__': os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ormday69.settings") #ormday69项目下的settings import django django.…
ORM:Object-Relation Mapping:对象-关系映射 在MVC框架中的Model模块中都包括ORM,对于开发人员主要带来了如下好处: 实现了数据模型与数据库的解耦,通过简单的配置就可以轻松更换数据库,而不需要修改代码. 只需要面向对象编程,不需要面向数据库编写代码. 在MVC中Model中定义的类,通过ORM与关系型数据库中的表对应,对象的属性体现对象间的关系,这种关系也被映射到数据表中. Django框架中ORM示意图如下: 在models中定义如下模型类:(各项配置已经部署…
浏览目录 一般操作 ForeignKey操作 ManyToManyField 聚合查询 分组查询 F查询和Q查询 事务 Django终端打印SQL语句 在Python脚本中调用Django环境 其他操作 一.一般操作 必知必会 <1> all(): 查询所有结果 <2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <3> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有…
Django中的ORM进阶操作 Django中是通过ORM来操作数据库的,通过ORM可以很easy的实现与数据库的交互.但是仍然有几种操作是非常绕也特别容易混淆的.于是,针对这一块,来一个分类总结吧. 对于ORM对数据库的基本操作前面model里已经有了介绍,这里专门针对ORM的一对多.多对多.正向.反向等操作来讲解用法和注意事项. 铭记于心的两条: 在联表操作过滤查找数据时用双下划线 "__" 在取数据时用点 "." 一.一对多 首先来设计两张简单的表格,并在其中…
一.ORM(对象关系映射) 很多语言的web框架中都有这个概念 1. 为什么要有ORM? 1. 写程序离不开数据,要使用数据就需要连接数据库,但是不同的数据库在sql语句上(mysql,oracle等)会有点区别, 因此直接在你的项目中使用sql语句的话,不便于以后的修改,万一更换了数据库,那所有sql语句不就要重新写吗? 所以这个时候ORM就体现出优点了,你只需要写ORM的代码,它就会根据你连接的数据库自动帮你翻译成对应的sql语句, 也就是说无论你使用的是mysql还是oracle,ORM操…
ORM 查询的数据类型: QuerySet与惰性机制(可以看作是一个列表) 所谓惰性机制:表名.objects.all()或者.filter()等都只是返回了一个QuerySet(查询结果集对象),它并不会马上执行sql,而是当调用QuerySet的时候才执行. QuerySet特点: <1>  可迭代的 <2>  可切片 <3>  惰性计算和缓存机制 例: info=models.table_name.objects.all()[0:5] #切片 info= mode…
Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中. ORM在业务逻辑层和数据库层之间充当了桥梁的作用. ORM由来 让我们从O/R开始.字母O起源于"对象"(Object),而R则来自于"关系&qu…
Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中. ORM在业务逻辑层和数据库层之间充当了桥梁的作用. ORM由来 让我们从O/R开始.字母O起源于"对象"(Object),而R则来自于"关系&qu…
一.一般操作 二.必知必会13条 返回QuerySet对象的方法有 特殊的QuerySet 返回具体对象的 返回布尔值的方法有 返回数字的方法 三.单表查询之神奇的双下划线 四.ForeignKey操作 4.1 正向查找 4.1.1 对象查找(跨表) 4.1.2 字段查找(跨表) 4.2 反向操作 4.2.1 对象查找 4.2.2 字段查找 五.ManyToManyField 5.1 class RelatedManager 方法 六.聚合查询和分组查询 6.1 聚合 6.2 分组 更多示例:…
ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中. ORM在业务逻辑层和数据库层之间充当了桥梁的作用. ORM总结 ORM只是一种工具,工具确实能解决一些重复,简单的劳动.这是不可否认的. 但我们不能指望某个工具能一劳永逸地解决所有问题,一些特殊问题还是需要特殊处理的. 但是在整…
Django框架 之 ORM 常用字段和参数 浏览目录 常用字段 字段合集 自定义字段 字段参数 DateField和DateTimeField 关系字段 ForeignKey OneToOneField ManyToManyField 常用字段 AutoField int自增列,必须填入参数 primary_key=True.当model中如果没有自增列,则自动会创建一个列名为id的列. IntegerField 一个整数类型,范围在 -2147483648 to 2147483647. Ch…
一.概论 1.ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中. ORM在业务逻辑层和数据库层之间充当了桥梁的作用. 2.ORM由来 让我们从O/R开始.字母O起源于"对象"(Object),而R则来自于"关系"(Relational). 几乎所有的软件开发过程…
ORM 介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说 ORM 是通过使用描述对和数据库自检映射的元数据, 将程序中的对象自动持久化到关系数据库中. ORM在业务逻辑层和数据库层之间充当了桥梁的作用. ORM由来 让我们从O/R开始.字母O起源于"对象"(Object),而R则来自于"关系"(Relational). 几乎所有的软件开发过程中…
目录 django中的ORM与 应用与补充 ORM与数据的对应关系 ORM 常用字段 ORM 其他字段 自定义字段 字段参数 Model Meta参数 常用13中查询(必会) 单表查询的双下划线应用 ForeignKey外键的操作 多对多 聚合查询和分组查询 Django终端打印SQL语句 在Python脚本中调用Django环境 django控制台写入数据(交互式无法保存记录) django中的ORM与 应用与补充 ORM与数据的对应关系 ORM 面向对象和关系型数据库的一种映射,通过操作对象…
1,字段和字段的参数 1.1>ORM的概念:对象映射模型(Objects Relational Model)是一种为了解决面向对象和关系型数据库存在的互不匹配的现象和技术,简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中,ORM是连接业务逻辑和关系型数据库的桥梁 1.2>ORM的由来 在程序开发人员中,需要一边写业务逻辑部分的内容,有要一遍边写sql语句的增删改查,这就造成程序开发人员的开发效率不够高,错误漏洞会百出,sql语句特点是极其相似的…