Django进阶Model篇004 - ORM常用操作
一、增加
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测试开发圈”,了解更多测试教程!***