1. 程式人生 > >ORM常用操作介紹

ORM常用操作介紹

pos 默認 性別 filter blog count 出版社 rom address

一、修改
update和save方法
實例:
1、增加一套作者記錄
>>> from hello.models import*
>>> Author.objects.create(name=‘胡大海‘)
<Author: Author object>
>>> AuthorDetail.objects.create(sex=False,email=‘[email protected]‘,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中的刪除默認是級聯刪除
課外思考:
去官方文檔查查,有沒有提供批量增加數據的方法

ORM常用操作介紹