ORM常用操作介绍

一、修改
update和save方法
实例:
1、增加一套作者记录
>>> from hello.models import*
>>> Author.objects.create(name='胡大海')
<Author: Author object>
>>> AuthorDetail.objects.create(sex=False,email='333@qq.com',address='北京XX',birthday='1988-1-2',author_id=1)
<AuthorDetail: AuthorDetail object>

2、增加一条出版社记录
>>> pub = Publisher()
>>> pub.name='电子工业出版社'
>>> pub.address = '成都华阳'
>>> pub.city = '成都'
>>> pub.state_province = '四川'
>>> pub.country = '中国'
>>> pub.website = 'http://maiziedu.com'
>>> pub.save()
>>>
3、增加一条书籍记录
>>> book = Book.objects.get(id=1) #获取书籍的对象
>>> author = Author.objects.get(id=1)#获取作者的对象
>>> book.authors.add(author) #插入书和作者的关系
>>>


objects:models的默认管理器。create是管理器里面的方法
插入主外键关系的时候,可以用对象的方式,也可以直接以直接关联id的方式
插入多对多关系的时候要分布操作
save是model对象的方法,即objects的方法
update是QuerySet对象的方法

二、修改
update和save方法

实例:
1、修改id为1的作者的名字为叶良辰,性别改为女
>>> author.name = '叶良辰'
>>> author.save()
>>>
>>> authordetail = AuthorDetail.objects.get(id=1)
>>> authordetail.sex
False
>>> authordetail.sex=True
>>> authordetail.save()
>>> authordetail.sex
True
>>>

2、修改名为"电子工业出版社"的出版社的网址为
http://www.maiziedu.com,城市为成都

>>> Publisher.objects.filter(id=1).update(city='重庆',website='http://www.google.com')
1
>>>
>>> Publisher.objects.filter(id=2).update(city='武汉',website='http://www.tmall.
com')
1
>>>


三、查询(惰性机制)
1、查询所有的出版社信息
>>> Publisher.objects.all()
[<Publisher: 电子工业出版社>, <Publisher: >]
>>>

>>> Book.objects.all()
[<Book: Book object>]
>>>

所谓的惰性机制:Publisher.objects.all()只是返回了一个QuerySet(查询结构集对象),并不会马上执行sql,而是当调用QuerySet的时候才执行

四、删除
delete方法
QuerySet对象的方法
实例:
1、删除id为1的书籍信息
>>> Book.objects.filter(id=1).delete()
(2, {'hello.Book': 1, 'hello.Book_authors': 1})
>>>
2、删除出版社城市为成都的记录
>>> Publisher.objects.filter(city='成都').delete()
(0, {})
>>> Publisher.objects.filter(city='重庆').delete()
(1, {'hello.Publisher': 1})
>>>

注意:django中的删除默认是级联删除
课外思考:
去官方文档查查,有没有提供批量增加数据的方法

原文地址:https://www.cnblogs.com/kindnull/p/8379776.html