Django进阶Model篇004 - ORM常用操作
2024-09-02 17:52:17
一、增加
create和save方法
实例:
1、增加一条作者记录
>>> from hello.models import *
>>> Author.objects.create(name='胡大海') >>> AuthorDetail.objects.create(sex=False,email='333@qq.com',address='北京XX',birthday='1988-1-2',author_id=1)
2、增加一条出版社记录
>>> pub=Publisher()
>>> pub.name='电子工业出版社'
>>> pub.address='成都华阳'
>>> pub.city='成都'
>>> pub.state_province='四川'
>>> pub.country='中国'
>>> pub.website='http://www.maiziedu.com'
>>> pub.save()
3、增加一条书籍记录
>>> Book.objects.create(title='python实战',publisher=pub,publication_date='2009-5-6')
>>> book=Book.objects.get(id=1)
>>> author=Author.objects.get(id=1)
>>> book.authors.add(author)
objects:model默认管理器。create是这个管理器里面的方法。
插入主外键关系的时候,可以用对象的方式,也可以直接以关联id的方式。
插入多对多关系的时候要分步操作。
save是model对象的方法。
二、修改
update和save方法
实例:
1、修改id为1的作者的名字为叶良辰,性别改为女
>>> Author.objects.filter(id=1).update(name='叶良辰')
>>> AuthorDetail.objects.filter(author__id=1).update(sex=True)
2、修改名为“电子工业出版社”的出版社的网址为 http://www.google.com,城市为重庆
Publisher.objects.filter(name='电子工业出版社').update(city='重庆',website='http://www.google.com')
update()方法是QuerySet对象的方法
三、查询(惰性机制)
实例:
1、查询所有的出版社信息
>>> Publisher.objects.all()
所谓惰性机制:Publisher.objects.all() 只是返回了一个QuerySet(查询结果集对象),并不会马上执行sql,而是当调用QuerySet的时候才执行。
四、删除
delete方法
实例:
1、删除id为1的书籍信息;
>>> Book.objects.filter(id=1).delete()
2、删除出版社城市为重庆的记录;
>>> Publisher.objects.filter(city='重庆').delete()
注意:django中的删除默认是级联删除。
delete方法也是QuerySet对象的方法
更多详见:https://docs.djangoproject.com/en/1.10/ref/models/querysets/
***微信扫一扫,关注“python测试开发圈”,了解更多测试教程!***
最新文章
- rt—移植笔记2(Lwip)
- Mac 系统下的环境变量
- 上传源码到github
- Linux初学者指南
- 【HAOI2006】【BZOJ1051】【p1233】最受欢迎的牛
- SaltStack安装(CentOS7.x)
- easyui plugin —— etreegrid:CRUD Treegrid
- photosho 等距复制或旋转复制
- Java数据结构和算法(十一)——红黑树
- python设计模式---创建型之工厂模式
- iOS中按钮点击事件处理方式
- idea 一款神一样的编辑器 IDEA,破解方式
- day16-小数据池
- JavaSE(十)之Map总结 (转)
- Vagrant (3) —— 复制/备份Vagrant Box
- Unity 使用C/C++ 跨平台终极解决方案(PC,iOS,Android,以及支持C/C++的平台)
- 带你了解数据库中group by的用法
- Android 动态添加Spinner(.java文件内实现) 实现 改变spinner 内文字属性
- hadoop输出lzo文件并添加索引
- python 多线程笔记(3)-- 线程的私有命名空间