-
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
|
b = 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 查询 2019 年 3 月出版的所有以“九”开头的书籍名称 3 查询价格为 50 , 100 或者 150 的所有书籍名称及其出版社名称 4 查询价格在 100 到 200 之间的所有书籍名称及其价格 5 查询所有华山出版社出版的书籍的价格(从高到低排序,去重) |
栏目列表
最新更新
如何使用OS模块中的stat方法
Python os 模块
seek() 方法
python打开文件实例1
Python写入文件
什么是流?
文件操作如何进制逐行读取
Python相对路径
with创建临时运行环境
Python文件操作
.Net Standard(.Net Core)实现获取配置信息
Linux PXE + Kickstart 自动装机
Shell 编程 基础
Shell 编程 条件语句
CentOS8-网卡配置及详解
Linux中LVM逻辑卷管理
1.数码相框-相框框架分析(1)
Ubuntu armhf 版本国内源
Linux中raid磁盘阵列
搭建简易网站
access教程之Access简介
mysql 安装了最新版本8.x版本后的报错:
Mysql空间数据&空间索引(spatial)
如何远程连接SQL Server数据库的图文教程
复制SqlServer数据库的方法
搜索sql语句
sql中返回参数的值
sql中生成查询的模糊匹配字符串
数据定义功能
数据操作功能