前言
系列文章目录
视频及资料和课件
链接:https://pan.baidu.com/s/1LCv_qyWslwB-MYw56fjbDg?pwd=1234
提取码:1234
1. shell
Django的manage工具提供了shell命令,以便可以直接在终端中执行测试python语句。
类似于ipython;
使用shell工具,可以帮助我们更好的测试代码,对于有关模型的代码(数据对象的增删改查)可以使用shell进行测试,就不用书写路由和请求响应到浏览器客户端进行查看。
启动shell,在命令窗口运行:
python manage.py shell
导入两个模型类,并查询两个模型类对应的所有数据对象:
# 导入两个模型类 from book.models import BookInfo,PeopleInfo
# 查询两个模型类对应的所有数据对象 BookInfo.objects.all() PeopleInfo.objects.all()
有关模型类的代码写在models.py中,对数据进行增删改查的代码书写在views.py中,对数据进行增删改查需要实例化模型类,在views.py中导入模型类,对数据进行增删改查。
2. 新增数据
2.1 方式一:实例化模型类
from django.shortcuts import render # 导入模型 from book.models import BookInfo # Create your views here. # 方法一 # 实例化模型类型对象,并且在实例化的时候为属性赋值 # 此种方法会返回对应的新数据对象 book = BookInfo( name='python', pub_date='2000-01-01' # 其他属性有默认值,这边就不进行赋值了 ) # 方法一需要主动的调用save()方法,将新增的数据对象同步到数据库中 book.save()
在shell中测试新增数据代码
2.2 方式二:直接新增入库
对数据进行增删改查都可以调用模型类的模型管理类objects
由于没有退出shell所以不用再次导入对应的模型类
# 方法二 # 直接新增数据对象入库 # 此种方法也会把新的数据对象返回给我们 # 新增数据调用objects的create方法 BookInfo.objects.create( name='java', pub_date='2010-01-01' )
3. 修改(更新)数据
3.1 方法一:直接修改实例属性
# 方法一 # 直接修改实例属性,修改完成后, # 需要对修改后的实例属性进行入库同步数据库 # 1. 先查询(获取)出需要进行修改的数据对象 # 对数据进行增删改查都可以调用模型类的模型管理类objects # 查询数据调用objects的get方法 # 获取id=1的数据对象 book = BookInfo.objects.get(id=1) # 2. 修改获取到的实例对象的实例属性 book.read_count = 2000 # 3. 调用save()方法同步数据库 book.save()
3.2 方法二:直接修改数据
# 方法二 # 先过滤出需要进行修改的数据对象, # 然后直接修改数据 # 此方法会返回受影响的行数 # filter过滤 BookInfo.objects.filter(id=1).update( read_count = 100, comment_count = 2000 )
如果直接调用objects的update方法,不能过滤出指定的数据对象,使用该方法相当于对所有的数据对象进行修改。
4. 删除数据
4.1 方法一:先查询出指定数据再进行删除
# 方法一 # 1. 先查询出要删除的数据对象 book = BookInfo.objects.get(id=5) # 2. 删除查询出来的数据对象 book.delete()
会有一定数据的返回
4.2 方法二:先过滤出指定数据再进行删除
# 方法二 # 先过滤出指定数据再进行删除 BookInfo.objects.filter(id=6).delete()