前提注意:在做增删改查的时候,你的数据库必须迁移成功!
book=数据库表对象
book.对象里面的字段=(’******‘)
#添加完了之后
book.save()#将这些数据添加到数据中
变量名=数据表对象.objects.creare(字段=’****‘,字段2=****)
使用 django.db.models.query.QuerySet.bulk_create()批量创建对象。减少SQL查询次数
改进如下:
querysetlist=[]
for i in resultlist:
querysetlist.append(Account(name=i))
Account.objects.bulk_create(querysetlist)
变量名=模型类名.objects.get(字段=值) #先从数据库中查找获取要修改的值
变量名.字段=’新的值‘ #这边就是将获取到的值进行修改
变量名.save()
变量名=模型类名.objects.get(字段=‘值’) #从数据库中查找到数据
变量名.delete() #删除这条数据
图例:
(还没删除数据时候的数据库):
删除中。。。。
查询方法:基本查询 、 过滤查询
基本查询分为3种:
get----->查询单一(一条数据),如果这条是数据库不存在会报错(DoseNotExist异常),如果存在多个一样的数据结果也会报错(MultipleObjectsReturned异常)
all----->查询多个数据
count--->查询到多个数据的总数量
get:
用法: 模型类名.objects.get(字段=”值“)
all:
用法: 模型类名.objects.all()
用法: 模型类名.objects.count()
1、模型类.objects.filter(字段=“值”)
2、模型类.objects.get(字段=“值”)
3、模型类.objects.filter(字段__exact=“值") #__exact 是表示判等(精确查找)
模型类名.objects.filter(字段__contains="值") #__contains:是否包含。
#startswith、endswith:以指定值开头或结尾。
模型类名.objects.filter(字段__endswith="值") #endswith:结尾
模型类名.objects.filter(字段__startswith="值") #endswith:开头
代码举例:
1、(例子:查询英雄模型类中包含“猪”的英雄):
2、(例子:查询英雄模型类中开头包含“曹“的英雄):
__gt #大于
__lt #小于
__gte #大于等于
__lte #小于等于
.exclude #不等于
代码举例:
(1、查询ID大于3的英雄):
(2、查询ID大于等于3的英雄):
(3、查询ID小于3的英雄):
(4、查询ID小于等于3的英雄):
(4、查询ID不等于3的所有英雄):
in:是否包含在范围内。
代码举例:
(1、查询ID为1、3、5的英雄)
(2、查询ID不在1、3、5的所有英雄)
year、month、day、week_day、hour、minute、second #对日期时间类型的属性进行运算。
代码举例:
(1、查询2014年发表的书):
(2、查询2014年后发表的书):
#导包
from django.db.models import F,Q
语法:f(属性名)
代码举例:
(1、书本阅读量小于等于评论量的书)
(2、阅读量小于等于2倍评论量)
代码举例:
(1、与 [&]:查询阅读量的书本大于20,并且书的ID必须大于1)(三种方法):
第一种:
第二种:
第三种:
(2、或[ | ]:查询阅读量大于20 或者编号小于1):
(3、非 [ ~ ]:查除了ID是3的所有英雄):
导包:from django.db.models import Avg, Count, Sum, Max, Min #导了包才能使用
使用方法: 模型类名.objects.aggregate(参数(‘字段’)) #aggregate就是聚合函数
参数有:
Avg:平均值
Count:总个数
Sum:求和
Max:最大值
Min:最小值
代码举例:
(1、最大值:求评论量最多的书本):
(2、最小值:求借阅书本最少的书本):
(3、平均值:求所有评论量的平均值):
(4、求和:求所有评论量的总和):
(5、总量:求所有英雄总量):
第一种:
用法:模型类名.objects.条件().order_by('字段')#.order_by就是排序
(1、以阅读量正序排序所有书本(小到大)):
(2、以阅读量倒序排序所有书本(大到小))
使用方法:
查询一下多方所有数据
一的对象.多的模型类小写_set.all()
查询一下多方(条件)数据:
一的对象.多的模型类小写.条件
代码举例:
前提:一本书可以多个人英雄(所以书(book书表)和英雄(hero英雄表)是一对多的关系)
(1、从西游记这本书里面的所有英雄)「通过书找书里面所有英雄」:
在多的一方有设计一个外键所以:直接使用外键(没有外键会报错找不到的)
代码举例:
(1、从英雄刘备里面找到这个书叫什么)「通过英雄找书本」:
代码举例:
(1、查询英雄是孙尚香的书籍 「提示:条件如果需要关联模型的字段 那么 就使用 关联模型类小写__属性名__条件运算符 = ‘xxx’
」):
(2、查询图书 书的英雄描述包含 ‘发’):
代码举例:
(1、查询西游记里所有有英雄 「提示:条件使用关联的模型类的字典 一模型类外键名__一模型类属性名__条件运算符 = 值
」)
(2、查询阅读量大于等于20的书的所有的英雄)