django ORM CRUD

Posted pfeiliu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django ORM CRUD相关的知识,希望对你有一定的参考价值。

一.增加数据-Create

  1.类名.objects.create(属性=值,属性=值)

Myomodel.objects.create(name="TeacherCang",age=15)

  2.d={"属性":"值"}     obj=类名(**d)  obj.save()  

d={"name":"Money","age":11}
obj=Myomodel(**d)
obj.save()

  3.obj=类名()  obj.属性=值  obj.save()

obj=Myomodel()
obj.name="Child"
obj.age=9
obj.save()

二.删除数据-Delete

  1.单个删除:类名.objects.get(属性=值).delete()

Myomodel.objects.get(id=8).delete()

  2.批量删除:类名.objects.filter(条件).delete()

Myomodel.objects.filter(age__lt=16).delete()

三.修改数据-Update

  1.单个修改:查  改  存 

obj=Myomodel.objects.get(id=1)
obj.name="xiugai"
obj.save()

  2.批量修改:类名.objects.filter(条件).update(属性=值)

Myomodel.objects.filter(name="money").update(name="amaoagou")

四.查询数据-Retrieve

Myomodel.objects.all()#<QuerySet [<Myomodel: Myomodel object (1)>]>Myomodel.objects.values()#<QuerySet [{id: 1, name: xiugai, age: 16}]>Myomodel.objects.values(id,age)#<QuerySet [{id: 1, age: 16}]>Myomodel.objects.values_list()#<QuerySet [(1, xiugai, 16)]>Myomodel.objects.values_list(name)#<QuerySet [(xiugai,), (Jerry,)]>Myomodel.objects.filter(name="amaoagou")#<QuerySet [<Myomodel: Myomodel object (10)>]>

  查询:过滤查询:类名.objects.filter(属性__查询谓词=值)#此处是双下划线

  查询谓词:

    1.exact  等值查询

    2.contains  模糊查询,相当于like "%xx%"

    3.in  模糊查询

    4.gt  大于

    5.lt  小于

    6.gte  大于等于

    7.lte  小于等于

    8.startswith  以...开始,相当于like "x%"

    9.endwith  以...结束,相当于like "%x"

    10.range  相当于between and

    11.regex  正则表达式匹配

Myomodel.objects.filter(name__startswith="Kai")#<QuerySet [<Myomodel: Myomodel object (4)>]>Myomodel.objects.filter(name__contains="cher")#<QuerySet [<Myomodel: Myomodel object (9)>]>

  查询:条件取反:类名.objects.exclude(条件)

Myomodel.objects.exclude(name__contains="cher")#<QuerySet [<Myomodel: Myomodel object (1)>]>

  查询:排序查询:类名.objects.order_by(条件)  

    默认是升序,字段名前加“-”即可降序排列

Myomodel.objects.order_by(age).values_list(age)
#<QuerySet [(11,), (11,), (15,), (15,), (16,), (19,), (23,), (36,), (36,)]>Myomodel.objects.order_by(-age).values_list(age)
# < QuerySet[(36,), (36,), (23,), (19,), (16,), (15,), (15,), (11,), (11,)] >Myomodel.objects.order_by(-age,-id).values_list(age,id)
#<QuerySet [(36, 14), (36, 11), (23, 4), (19, 3), (16, 1), (15, 12), (15, 9), (11, 13), (11, 10)]>

  只查询一条:类名.objects.get(条件)

Myomodel.objects.get(id=14)#Myomodel object (14)

  获取查询数量

Myomodel.objects.filter(name="TeacherCang").count()#2

  聚合查询

from django.db.models import Avg,Sum,Count,Max,Min
.........................

Myomodel.objects.aggregate(age=Avg(‘age‘))
Myomodel.objects.aggregate(age=Sum(‘age‘))
Myomodel.objects.aggregate(age=Count(‘age‘))
Myomodel.objects.aggregate(age=Max(‘age‘))
Myomodel.objects.aggregate(age=Min(‘age‘))

以上是关于django ORM CRUD的主要内容,如果未能解决你的问题,请参考以下文章

Django_ORM框架_关联字段_CRUD操作

Django_ORM框架_关联字段_CRUD操作

Django ORM 操作

(Django)气流中的 ORM - 有可能吗?

Django 模型中的CRUD

sqlalchemy orm 中的 crud 函数