VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > 简明python教程 >
  • django模型(1)(3)

    4、删除表记录

      删除方法就是 delete()。它运行时立即删除对象而不返回任何值。例如:

1
model_obj.delete()

      你也可以一次性删除多个对象。每个 QuerySet 都有一个 delete() 方法,它一次性删除 QuerySet 中所有的对象。

      例如,下面的代码将删除 pub_date 是2018年的 Book 对象:

1
Book.objects.filter(pub_date__year=2018).delete()

      在 Django 删除对象时,会模仿 SQL 约束 ON DELETE CASCADE 的行为,换句话说,删除一个对象时也会删除与它相关联的外键对象。例如:

1
2
3
= Book.objects.get(pk=1)
# This will delete the Blog and all of its Entry objects.
b.delete()

要注意的是: delete() 方法是 QuerySet 上的方法,但并不适用于 Manager 本身。这是一种保护机制,是为了避免意外地调用 Entry.objects.delete() 方法导致 所有的 记录被误删除。如果你确认要删除所有的对象,那么你必须显式地调用:

1
Book.objects.all().delete()  
    5、修改表记录

      方式一:

        通过修改实例对象的属性方式。注意:一定要对象.save()

1
2
3
book = models.Book.objects.get(title="吸星大法")
book.price = 180
book.save()

      方式二:

        通过ORM提供的objects提供的方法 update来实现。

1
models.Book.objects.filter(title="吸星大法").update(price=190)

        此外,update()方法对于任何结果集(QuerySet)均有效,这意味着你可以同时更新多条记录update()方法会返回一个整型数值,表示受影响的记录条数。 

四、今日作业

  1、ORM练习题:

    数据:

复制代码
models.Book.objects.create(title="独孤九剑", price=180, publisher="华山出版社", pub_date="2019-1-12")
models.Book.objects.create(title="华山剑法", price=100, publisher="华山出版社", pub_date="2018-10-2")
models.Book.objects.create(title="挤奶龙爪手", price=200, publisher="华山出版社", pub_date="2019-2-22")
models.Book.objects.create(title="冲灵剑法", price=150, publisher="华山出版社", pub_date="2019-3-6")
models.Book.objects.create(title="吸星大法", price=190, publisher="明教出版社", pub_date="2019-2-6")
models.Book.objects.create(title="葵花宝典", price=280, publisher="明教出版社", pub_date="2018-1-17")
models.Book.objects.create(title="乾坤大挪移", price=260, publisher="明教出版社", pub_date="2019-1-6")
models.Book.objects.create(title="九阴真经", price=220, publisher="少林出版社", pub_date="2019-3-6")
models.Book.objects.create(title="九阳神功", price=230, publisher="少林出版社", pub_date="2019-3-11")
models.Book.objects.create(title="九阴白骨爪", price=50, publisher="少林出版社", pub_date="2019-2-7")
复制代码

    练习题:

1
2
3
4
5
6
7
8
9
1 查询明教出版社出版过的价格大于200的书籍
 
2 查询20193月出版的所有以“九”开头的书籍名称
 
3 查询价格为50,100或者150的所有书籍名称及其出版社名称
 
4 查询价格在100200之间的所有书籍名称及其价格
 
5 查询所有华山出版社出版的书籍的价格(从高到低排序,去重)

相关教程