关于数据库的访问------增,删,改,查(九)

时间:2022-12-11 20:55:52

1.基本数据库访问
当需要操作数据库时,不再需要通过sql语句,Django自动为这些模型提供了高级的Python API。我们通过运行manage.py提供的shell命令,来对数据库表进行操作。该shell模式为Django特别定制,在该模式下可以操作Django模型。如下截图
关于数据库的访问------增,删,改,查(九)
下图的from FirstApp.models import Event,Guest是导入FirstApp应用下Model中的Event类和Gutest类。table.objects.all()是获得table(即Event和Guest)中的所有对象。
关于数据库的访问------增,删,改,查(九)
2.插入数据,先看执行截图
关于数据库的访问------增,删,改,查(九)
因start_time字段需要设置日期时间,所以先导入datetime.datetime()方法,当通过save()方法保存插入的数据时,收到了警告信息;这跟UTC(世界标准时间)有关系,直接的解决办法是,进入到../FirstProject/settings.py文件中设置:USE_TZ=False。修改完之后,保存文件,同时shell模式需要退出重新进入,刚刚的设置才会生效。再次执行插入数据,发现警告信息消失了。
关于数据库的访问------增,删,改,查(九)
3.通过table.objects.create()方法将创建和保存合为一步。方法如下截图
关于数据库的访问------增,删,改,查(九)
在此说明一下,发布会表的id字段已经设置了自增,所以创建发布会表数据时可以不用指定id,但在创建嘉宾时数据是需要指定关联的发布会id。可以自行尝试一下。
4.查询数据

  • table.objects.get()方法用于从数据库表中取得一条匹配的结果,返回一个对象,如果记录不存在,就会报DoesNotExist类型错误。
  • table.objects.filter()方法是从数据库取得匹配的结果,返回一个对象列表,如果记录不存在,会返回空列表[]。适用于模糊查询。
    关于数据库的访问------增,删,改,查(九)
    关于数据库的访问------增,删,改,查(九)
    中间会出错的原因是name和contains直接没有使用双下划线。
    5.删除数据,使用delete()方法。
    关于数据库的访问------增,删,改,查(九)
    6.更新数据,使用update()方法或者直接更新,两种操作方式如下。
    关于数据库的访问------增,删,改,查(九)

这部分,建议自己查询下django关于这部分的API,以便更好的理解。
Django关于sql的API