Django-数据库操作(四)
1、简介
- Django提供了一套抽象的的API,让我们来对数据库进行CRUD(create, retrieve, update and delete objects)
- 简化对数据库的操作
2、演练数据库相关操作
- 可以使用shell
#安装ipython
pip install -i https://pypi.douban.com/simple ipython
python manage.py shell -i ipython
#查看所有的项目
Projects.objects.all()
3、CREATE
- 使用模型内构造方法
在视图中,对数据库的表进行操作:
#创建数据 #1、创建模型类对象 one_obj = Projects(name='这是一个牛逼的项目', leader='icon', pubish_app='这是一个厉害的应用', programer='艳艳', tester='萧萧') #2、调用save方法保存 one_obj.save()
- Create
#方法二: Projects.objects.create(name='这是一个牛逼的项目520', leader='icon', pubish_app='这是一个厉害的应用', programer='艳艳', tester='萧萧')
4、retrieve
- 获取一个数据表的所有记录
- 返回所有记录组成的模型对象集合(queryset查询集)
Projects.objects.all()
QUerySet查询机相当于一个列表(存放所有项目对象的列表)
- 获取指定记录
- get
one_poj = Projects.objects.get(id=1)
get方法只能返回一条记录,如果返回多条记录或者查询的记录不存在那么会抛出异常。
get方法的参数往往为主键或者唯一键。
-
- filter
获取某一些记录
one_poj = Projects.objects.filter(id=1) # 使用特定的过滤方法 one_poj = Projects.objects.filter(leader__contains='icon') one_poj = Projects.objects.filter(leader__icontains='icon') # 忽略大小写 # 外键字段__从表字段名__contains one_poj = Projects.objects.filter(interfaces__name='登录接口') # 关联查询
# 如果给filter指定多个条件,那么条件之间是与的关系
one_poj = Projects.objects.filter(leader='fumei', name__contains='fu') # 与关系查询
# 或关系
one_poj = Projects.objects.filter(Q(leader='fumei')|Q(name__contains='fu')) # 或查询
-
- exclude
反向查询,查询结果不包含id=1的记录
one_poj = Projects.objects.exclude(id=1)
总结:
- 查询集相当于一个列表,支持列表的大多数操作(通过数字索引取值,切片,for)
- 查询集是对数据库操作的一种优化
- 查询集会缓存结果
- 惰性查询
- 查询集还支持链式操作
one_poj = Projects.objects.filter(leader='fumei', name__contains='fu') one_poj.filter(programer='app').first()
5、update
步骤:
- 先获取到要修改的模型对象
- 然后修改
- 保存
one_poj = Projects.objects.get(id=1) one_poj.leader = 'sinder' one_poj.save()
6、delete
步骤:
- 获取要删除的模型对象
- 删除
- 保存
qs = Projects.objects.filter(name__contains='fu') one_poj = qs.first() one_poj.delete()
7、排序
#从小到大排序 qs = Projects.objects.filter(name__contains='fu').order_by('name') #从大到小排序 qs = Projects.objects.filter(name__contains='fu').order_by('-name')

浙公网安备 33010602011771号