django的ORM
在项目根目录下运行 python manage.py shell 即可进入django的交互shell界面
查询
from my_app.models import MyTestModel
datas=MyTestModel.objects.filter(name='my_name')
filter()用于筛选满足条件的子集
exclude()用于筛选不满足条件的子集
filter用于筛选多条结果,返回tuple(query set). 可以在结果上继续应用filter
datas=datas.filter(time='2018-12-21')
大于gt ,大于等于gte ,小于lt , 小于等于lte,中间用双下画下线连接
datas=datas.filter(time__gt='2018-12-21').order_by('name','time')
order_by排序可以是单个字段或多个字段
limit用python的切片表示,切片是左开右闭,数字表示索引,下标从0开始,不支持负数索引 如:[-1]
datas=datas[2:5] 相当于limit(2,3) sql的limit第一个参数是索引,下标从1开始,不包含该索引的记录,第二个参数是记录数,表示的
含义为,从第二条数据后开始截取3条数据。
like
datas=datas.filter(name__contains="key") 相当于 like '%key%'
django的orm的query也是惰性的,在多次执行filter ,等操作时,它实际上并未进行任何数据库活动,直到返回的数据被用到时才会进行查询。
>>> q = Entry.objects.filter(headline__startswith="What")
>>> q = q.filter(pub_date__lte=datetime.date.today())
>>> q = q.exclude(body_text__icontains="food")
>>> print(q)
这个只会在最后print(q)时执行一次查询操作。
每次执行的返回的queryset都是相互独立的,不受下次filter影响.
>>> q1 = Entry.objects.filter(headline__startswith="What")
>>> q2 = q1.exclude(pub_date__gte=datetime.date.today())
>>> q3 = q1.filter(pub_date__gte=datetime.date.today())
q3是在q1的基础上对pu_date字段经行了过滤
filter获得的结果,即使只有一条记录也会返回一个tuple。 如果已知要获取的结果,有且仅有一条,可以使用get()
datas=datas.get(pk=1)
但是如果没有匹配的结果就会raise 一个DoesNotExist的异常,如果结果多于1条就会raise一个 MultipleObjectsReturned的异常。
创建
from blog.models import Author
joe=Author.objects.create(name="Joe")
joe.save()
对于用户密码的创建要使用create_user()
from django.contrib.auth.models import User
amli=User.objects.create_user(username="Amili",password="someword")
amli.save()
django的ORM的更多相关文章
- python——Django(ORM连表操作)
千呼万唤始出来~~~当当当,终于系统讲了django的ORM操作啦!!!这里记录的是django操作数据库表一对多.多对多的表创建及操作.对于操作,我们只记录连表相关的内容,介绍增加数据和查找数据,因 ...
- Python’s SQLAlchemy vs Other ORMs[转发 3]Django's ORM
Django's ORM Django is a free and open source web application framework whose ORM is built tightly i ...
- 将SALT_STACK的JOB-CACHE放到数据库中,而建库用DJANGO的ORM完成
下面包括了SALT_MASTER的配置,及DJANGO的ORM里更改默认表名称,更改默认字段名称(里面有个RETURN),更改默认ID索引... 一个下午有和它磨来磨去... 感谢鹏龙,感谢高远..: ...
- Django:之ORM、CMS和二维码生成
Django ORM Django 的数据库接口非常好用,我们甚至不需要知道SQL语句如何书写,就可以轻松地查询,创建一些内容,所以有时候想,在其它的地方使用Django的 ORM呢?它有这么丰富的 ...
- Django的ORM实现数据库事务操作
在Django中实现数据库的事务操作 在学习MySQL数据库时,MySQL数据库是支持原子操作的. 什么是数据库的原子操作呢??打个比方,一个消费者在一个商户里刷信用卡消费. 交易正常时,银行在消费者 ...
- 第十九章 Django的ORM映射机制
第十九章 Django的ORM映射机制 第一课 Django获取多个数据以及文件上传 1.获取多选的结果(checkbox,select/option)时: req.POST.getlist('fav ...
- Django之ORM基础
ORM简介 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述 ...
- Django中ORM介绍和字段及其参数
ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述 ...
- ORM以及Django使用ORM创建表
day61 2018-04-28 1. 内容回顾 1. HTTP协议消息的格式: 1. 请求(request) 请求方法 路径 HTTP/1.1\r\n k1:v1\r\n ...\r\n \r\n ...
随机推荐
- concurrent.futures进行并发编程
Python中进行并发编程一般使用threading和multiprocessing模块,不过大部分的并发编程任务都是派生一系列线程,从队列中收集资源,然后用队列收集结果.在这些任务中,往往需要生成线 ...
- 回车\r与换行\n
在计算机出现之前,有一种电传机械打字机,每秒可以打10个字符.但是有一个问题,就是打满一行后,需要进行换行,换行是需要0.2秒.如果这时有字符传入,就会丢失两个字符.为了解决这个问题,便定义了两个字符 ...
- uni-app编写小程序
今天项目还没有开始开发,网上看到了uni-app官网介绍可以一套代码,多端使用,感觉很厉害的样子,就做了个小程序页面试试. uni-app 使用 vue语法,小程序api,内嵌mpvue,使我们能够很 ...
- qt 串口
if(ui->connectSerialBtn->text() == tr("打开串口")) { //ui->showSerialInfo->setEnab ...
- 【新特性】JDK1.8
一.简介 毫无疑问,Java 8是Java自Java 5(发布于2004年)之后的最重要的版本.这个版本包含语言.编译器.库.工具和JVM等方面的十多个新特性.在本文中我们将学习这些新特性,并用实际的 ...
- P4389 付公主的背包
注意 初始化的时候要这样写 for(int i=1,x;i<=n;i++){ scanf("%d",&x); v[x]++; } for(int i=1;i<= ...
- 20175312 2018-2019-2 《Java程序设计》第6周课下选做——类定义
20175312 2018-2019-2 <Java程序设计>第6周课下选做--类定义 设计思路 1.我觉得Book其实就是一个中转的作用,由测试类Bookself通过Book输入数据,然 ...
- 什么时候使用“RCC_APBXPeriph_AFIO”
什么时候需要开启复用时钟: (1)使用EXTI (2)重映射(用到外设的重映射功能时才需要使能AFIO的时钟) 举例:重映射USART2 USART2的TX/RX在PA.2/3.但是,PA.2已经被T ...
- HttpClient exception:ExceptionType:System.Threading.Tasks.TaskCanceledException: The operation was canceled. ---> System.IO.IOException: Unable to read data from the transport connection: Operation ca
error msg: System.Threading.Tasks.TaskCanceledException: The operation was canceled. ---> System. ...
- JXOJ(基于UOJ)部署日志
JXOJ部署日志 前些日子协助cyc.llf两位奆老部署了JXOJ,为方便日后维护我校OJ的同学,写篇日志做记录以日后查看. 一.准备: 在尝试了多个不同OJ之后,我们最终选择了Universal ...