增加 增加数据有两种方法。 save 通过创建模型类对象,执行对象的save()方法保存到数据库中。 from book.models import BookInfo,PeopleInfo book = BookInfo( name='python\u5165\u95e8', pub_date='2010-1-1' ) book.save() book create 通过模型类.objects.create()保存。 PeopleInfo.objects.create( name='itheima', book=book ) 修 在Django框架中,数据库操作是核心功能之一,它提供了高效、便捷的方式来处理数据的增、删、改、查(CRUD)操作。本篇主要介绍Django中对数据库的操作,特别是多种查询方法。 我们来看如何增加数据。Django提供了两种方式来保存数据到数据库: 1. 使用`save()`方法:通过创建模型类的对象,然后调用该对象的`save()`方法来保存数据。例如: ```python from book.models import BookInfo, PeopleInfo book = BookInfo(name='python入门', pub_date='2010-1-1') book.save() ``` 2. 使用`create()`方法:直接通过模型类的`objects.create()`方法创建并保存数据,如: ```python PeopleInfo.objects.create(name='itheima', book=book) ``` 接下来,我们讨论如何修改数据: 1. `save()`方法:修改模型类对象的属性后,再次调用`save()`方法来更新数据库。例如: ```python person = PeopleInfo.objects.get(name='itheima') person.name = 'itcast' person.save() ``` 2. `update()`方法:可以批量更新满足条件的记录,返回受影响的行数。例如: ```python PeopleInfo.objects.filter(name='itcast').update(name='H_sen') ``` 接着,我们看删除数据的方式: 1. `delete()`方法:直接调用模型类对象的`delete()`方法来删除单个记录,或者: ```python person = PeopleInfo.objects.get(name='H_sen') person.delete() ``` 2. 集合级删除:使用`ModelName.objects.filter().delete()`来删除满足条件的所有记录,如: ```python BookInfo.objects.filter(name='python入门').delete() ``` 查询数据是Django中最常用的功能,以下是一些基本查询方法: 1. `get()`方法:查询单一结果,如果不存在会抛出`DoesNotExist`异常。 ```python BookInfo.objects.get(id=1) ``` 2. `all()`方法:获取所有记录。 ```python BookInfo.objects.all() ``` 3. `count()`方法:计算查询结果的数量。 ```python BookInfo.objects.count() ``` 除了这些基础查询,Django还提供了强大的过滤查询功能,可以实现类似SQL的`WHERE`子句操作: - `filter()`方法:过滤出多个结果。 - `exclude()`方法:排除掉符合条件的结果。 - `get()`方法:用于过滤单一结果,与`filter()`相似,但当结果不唯一时会抛出异常。 例如,我们可以使用各种比较运算符来进行过滤: 1. 相等:`exact`(默认,可省略)。 ```python BookInfo.objects.filter(id=1) ``` 2. 模糊查询: - `contains`:查找包含指定值的记录。 ```python BookInfo.objects.filter(name__contains='传') ``` - `startswith`:以指定值开头。 ```python BookInfo.objects.filter(name__startswith='部') ``` - `endswith`:以指定值结尾。 ```python BookInfo.objects.filter(name__endswith='部') ``` 3. 其他比较运算符: - `lt`:小于。 - `gt`:大于。 - `lte`:小于等于。 - `gte`:大于等于。 - `range`:在指定范围内。 - `year`:按年份筛选。 - `month`:按月份筛选。 - `day`:按日期筛选。 例如,查询1980年发表的图书: ```python BookInfo.objects.filter(pub_date__year=1980) ``` 此外,还可以组合多个条件进行复杂查询,如使用`Q`对象进行逻辑运算,以及使用`annotate`、`order_by`、`values`、`values_list`等方法进行聚合、排序和字段选择等高级查询。 Django的数据库操作提供了丰富的API,使得开发者能方便地对数据库进行各种操作,极大地提高了开发效率。理解并熟练掌握这些方法对于Django开发者来说至关重要。
- 粉丝: 8
- 资源: 926
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 【小程序毕业设计】微信点餐系统源码(完整前后端+mysql+说明文档).zip
- 【小程序毕业设计】python童心党史小程序源码(完整前后端+mysql+说明文档).zip
- DLL库依赖分析工具(Dependencies-x64)
- 【小程序毕业设计】同城交易小程序源码(完整前后端+mysql+说明文档).zip
- JavaScript《基于SpringBoot的多人博客系统(仿CSDN)》+项目源码+文档说明
- 【小程序毕业设计】数学辅导微信小程序源码(完整前后端+mysql+说明文档+LW).zip
- Java《基于springboot框架搭建的B2C商城》+项目源码+文档说明
- 【小程序毕业设计】面向企事业单位的项目申报小程序源码(完整前后端+mysql+说明文档+LW).zip
- 【小程序毕业设计】论坛小程序源码(完整前后端+mysql+说明文档).zip
- Java《基于SSM的高校共享单车管理系统》+项目源码+文档说明