- 在PyCharm的Terminal下开启Shell模式,输入python manage.py shell指令即可,如果Shell模式示符是“>>>”
- 可以安装IPython
- 此时,再进入Shell模式
- 在Shell模式下,若想对数据表commodity_types新增数据
- 查看commodity_types数据表,看是否新增一条记录
- 执行命令: t = Types.objects.create(firsts='儿童用品',seconds='婴儿车')
- 查看commodity_types数据表,看是否新增一条记录
- 执行命令:d = dict(firsts='奶粉辅食',seconds='磨牙饼干')
- 查看commodity_types数据表,看是否新增一条记录
- 执行命令:t = Types(firsts='早教产品',seconds='格林童话')
- 查看commodity_types数据表,看是否新增一条记录
- 在执行数据新增时,为了保证数据的有效性,我们需要对数据进行去重判断,确保数据不会重复新增。以往的方案都是对数据表进行查询操作,如果查询的数据不存在,就执行数据新增操作。为了简化这一过程,Django提供了get_or_create方法。
- 只要有一个模型字段的值与数据表的数据不相同(除主键之外),就会执行数据新增操作。
- 查看commodity_types数据表,看是否新增一条记录
- update_or_create是根据字典d的内容查找数据表的数据,如果能找到相匹配的数据,就执行数据修改,修改内容以字典格式传递给参数defaults即可;如果在数据表找不到匹配的数据,就将字典d的数据新增到数据表里。
- 第一次是新增数据
- 查看commodity_types数据表
- 第二次是修改数据
- 查看commodity_types数据表
- 在使用bulk_create之前,数据类型为模型Types的实例化对象,并且在实例化过程中设置每个字段的值,最后将所有实例化对象放置在列表或元组里,以参数的形式传递给bulk_create,从而实现数据的批量新增操作。
- 查看commodity_types数据表
- 退出Shell模式
- 更新数据的步骤与数据新增的步骤大致相同,唯一的区别在于数据对象来自数据表,因此需要执行一次数据查询,查询结果以对象的形式表示,并将对象的属性进行赋值处理
- 打开数据表commodity_types查看数据修改情况
- 批量更新一条或多条数据,查询方法使用filter,filter以列表格式返回,查询结果可能是一条或多条数据
- 可以同时更新多个字段值,比如Types.objects.filter(id=1).update(firsts=‘童装’,
seconds=‘男装’) - 打开数据表commodity_types查看数据修改情况
-
更新数据以字典格式表示
-
打开数据表commodity_types查看数据修改情况
- 不使用查询方法,默认对全表的数据进行更新
- 打开数据表commodity_types查看数据修改情况
- 将id字段原有的数据自增加13,自增或自减的字段必须为数字类型
- 打开数据表commodity_types查看数据修改情况
- 将id字段原有的数据自减13
- 打开数据表commodity_types查看数据修改情况
- 在Django 2.2或以上版本新增了数据批量更新方法bulk_update,它的使用与批量新增方法bulk_create相似
- 打开数据表commodity_types查看数据修改情况,新增两条新记录
- 批量更新两条记录



