查询操作1)查询所有结果,相当于sql中的select*fromlist=Test.objects.all()2)条件查询,过滤相关的sql用在哪里过滤查询结果,传递多个参数:result=Test.objects.filter(id=1,name='test')如果多个条件和查询用逗号分隔,过滤函数中的参数都是TestModel中的Field3)获取单个对象。get方法的参数一般是Model的主键。如果找不到,就会报错。test_obj=Test.objects.get(id=1)4)限制返回结果数据的个数,这是相当forsql中的limit,其中order_by用于排序,如果按照字段a倒序排序,则是order_by(“-time”)Test.objects.order_by('name')[0:2]5)链式查询Test。objects.filter(name='test').order_by(“-ctime”)6)多条件参数查询,传递字典,构造查询条件data=Test.objects.filter(**query_dict).order_by(“-ctime”).values其中query_dict为字典,key为条件字段,value为条件值query_dict={'id':123,'name':'yyp'}7)传递Q对象,构造filter()等函数中的查询条件、公式中的关键字参数都是“与”的关系。但是要执行更复杂的查询(例如,实现一个或关系与过滤条件),您可以使用Q对象。Q对象包括AND关系和OR关系。Q对象可以用&和|连接运营商。当一个操作连接两个Q对象时,会生成一个新的等价Q对象1.第一步是构造一个Q对象:fromdjango.db.modelsimportQQ(name__startswith='h')|Q(name__startswith='p')2.第二步,Q对象作为查询参数,多个Q对象是and关系:Test.objects.filter(Q(date='2018-10-1000:00:00'),Q(name__startswith='h')|Q(name__startswith='p')filter()等函数可以接受Q对象和条件参数,但是Q对象必须放在条件参数前面8)过滤不满足条件的操作data=Test.objects.exclude(id=1)传入条件查询q1=Q()q1.connector='OR'#连接方法q1.children.append(('id',1))q1.children.append(('id',2))q1.children.append(('id',3))models.Tb1.objects.filter(q1)组合条件查询con=Q()q1=Q()q1.connector='OR'q1.children.append(('id',1))q1.children.append(('id',2))q1.children.append(('id',3))q2=Q()q2。connector='OR'q2.children.append(('status','online'))con.add(q1,'AND')con.add(q2,'AND')models.Tb1.objects.filter(con)添加类操作1)添加一条新记录test1=Test(name='yyp')test1.save()更新类操作1)先查询并获取对象,然后修改对象的值,然后保存test1=Test.objects.get(id=1)test1.name='Google'test1.save()2)条件链更新Test.objects.filter(id=1).update(name='Google')删除类操作1)先查询获取要删除的对象,然后直接删除操作//删除id=1的数据test1=Test.objects.get(id=1)test1.delete()2)条件删除Test.objects.filter(id=1).delete()QuerySet与Django相关的Django中model查询的结构类型是QuerySet,本质上是一个查询对象集1)将多个查询结果转换为字典列表//all()方法查询QuerySet,使用values方法转换成字典集合data=Test.objects.all().values()data_dict_list=list(data)