怎么在Django中利用模型操作表

  介绍

怎么在Django中利用模型操作表?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

<强>一、基本操作

#,增      models.Tb1.objects.create (c1=& # 39; xx # 39;,, c2=& # 39; oo # 39;), #增加一条数据,可以接受字典类型数据,* * kwargs      时间=obj  models.Tb1 (c1=& # 39; xx # 39;,, c2=& # 39; oo # 39;)   obj.save ()      dic =, {& # 39; c1 # 39;: & # 39; xx # 39;, & # 39; c2 # 39;: & # 39; oo # 39;}   models.Tb1.objects.create (* * dic),#形式的产出结果是一个字典,可以根据这个形式的字典和* *直接在数据库创建数据   #,查      models.Tb1.objects.get (id=123),,,,, #,获取单条数据,不存在则报错(不建议)   models.Tb1.objects.all(),,,,,,,, #,获取全部,,,中国当代(),取第一条数据   models.Tb1.objects.filter (name=& # 39; 7 # 39;), #,获取指定条件的数据,,也可以用* *的方式传参数      #,删      models.Tb1.objects.filter (name=& # 39; 7 # 39;) delete(), #,删除指定条件的数据      #,改      models.Tb1.objects.filter (name=& # 39; 7 # 39;) .update(性别=& # 39;0 & # 39;),#,将指定条件的数据更新,均支持,* * kwargs      时间=obj  models.Tb1.objects.get (id=1)   时间=obj.c1  & # 39; 111 & # 39;   obj.save(),,,,,,,,,,,,,,,,,,,,,,,,, #,修改单条数据

细看从数据库取出的数据类型:

w =, models.Simp.objects.all ()   ,print  w类型(w)   [& lt;笨人:chenc>,, & lt;笨人:,zan>,, & lt;笨人:,zhangsan>],, & lt; class  & # 39; django.db.models.query.QuerySet& # 39;在

可以看的到,从数据库取出个数据看起来像包含对象的列表。而实际上整个数据为django中的特殊类型QuerySet。

所有()是取得所有列的数据,可以加. values()取出某一列,每一项的值为一个字典:

w =, models.Simp.objects.all () . values(& # 39;用户名# 39;)   print  w,类型(w)      [{& # 39;用户名# 39;:,u # 39; chenc& # 39;},,{& # 39;用户名# 39;:,u # 39;攒# 39;},,{& # 39;用户名# 39;:,u # 39; zhangsan& # 39;}], & lt; class  & # 39; django.db.models.query.QuerySet& # 39;在

.values_list(),获取到的值为一个元组

w =, models.Simp.objects.all () .values_list(& # 39;用户名# 39;)   print  w,类型(w)      [(u # 39; chenc& # 39;,),, (u # 39;攒# 39;,),,(u # 39; zhangsan& # 39;)], & lt; class  & # 39; django.db.models.query.QuerySet& # 39;在

.values_list()也可以添加多个参数:(可以配合形式在前端生成动态的选择)

w =, models.Simp.objects.all () .values_list (& # 39; id # 39;,, & # 39;用户名# 39;)   print  w,类型(w)      [(1,u # 39; chenc& # 39;),, (2, u # 39;攒# 39;),,(3),u # 39; zhangsan& # 39;)], & lt; class  & # 39; django.db.models.query.QuerySet& # 39;在

查询可以查看执行的sql语句:

b =, models.Simp.objects.all ()   print  b.query      干净自己的SELECT “app01_simp" id",,“app01_simp" !”username",,“app01_simp"干净password",得到“app01_simp"

<强>二、进阶操作

利用双下划线将字段和对应的操作连接起来

#,获取个数   ,#   #,才能models.Tb1.objects.filter (name=& # 39; 7 # 39;) .count ()      #,才能大于,小于   ,#   #,才能models.Tb1.objects.filter (id__gt=1),,,,,,, #,获取id大于1的值   #,才能models.Tb1.objects.filter (id__lt=10),,,,,,, #,获取id小于10的值   #,才能models.Tb1.objects.filter (id__lt=10, id__gt=1),, #,获取id大于1,且,小于10的值      #,才能   ,#   #,才能models.Tb1.objects.filter (id__in=[11日,22日,33]),,#,获取id等于11日,22日,33的数据   #,才能models.Tb1.objects.exclude (id__in=[11日,22日,33]),# not 在      ,#,包含   ,#   #,才能models.Tb1.objects.filter (name__contains=皏en")   #,才能models.Tb1.objects.filter (name__icontains=皏en"), #, icontains大小写不敏感   #,才能models.Tb1.objects.exclude (name__icontains=皏en")      #,才能范围   ,#   #,才能models.Tb1.objects.filter (id__range=[1, 2]),, #,范围bettwen 和      #才能,其他类似   ,#   #,才能startswith, istartswith,, endswith,, iendswith,      #,才能order    ,#   #,才能models.Tb1.objects.filter (name=& # 39; 7 # 39;) .order_by (& # 39; id # 39;),, #, asc 从小到大   #,才能models.Tb1.objects.filter (name=& # 39; 7 # 39;) .order_by (& # 39; -id& # 39;),, #, desc 从大到小      #,才能limit ,抵消   ,#   #,才能models.Tb1.objects.all () [20]      #,才能group    得到才能django.db.models  import 统计,,,,马克斯,总和   #,才能models.Tb1.objects.filter (c1=1) . values (& # 39; id # 39;) .annotate (c=Count (& # 39; num # 39;))   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

怎么在Django中利用模型操作表