码迷,mamicode.com
首页 > 编程语言 > 详细

Python-django-ORM增删改查

时间:2021-01-27 13:13:47      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:value   更新   let   date   bsp   length   大小   data   增删改查   

一,单表增删改查

class Book(models.Model):
    name = models.CharField(max_length=32)
    price = models.IntegerField()
    pub_date = models.DateField()
    author = models.CharField(max_length=32)

 

1. 增加数据

  方式一:save( )

book=Book(name=python,price=99,pub_date=2020-12-23,author=Jack)
book.save()

 

     方式二:create( )

Book.objects.create(name=Java,price=299,pub_date=2020-11-23,author=Jack)

 

   方式三:字典数据插入

 data={name:PHP,price:56,pub_date:2020-10-23,author:Rose}
 Book.objects.create(**data)

 

 

2. 更新数据

  方式一:update ( )  ; 优先使用,减少一次SQL查询

Book.objects.filter(author=Rose).update(price=345)

 

   方式二:先get,后 update

book=Book.objects.get(author=Rose)
book.price=120
book.save()

 

 

3. 删除数据

  方式一:delete( )

Book.objects.filter(author=Rose).delete()

 

 

4. 查询数据

  方式一: all( )   ; 结果集为:QuerySet <>

li=Book.objects.all()  

 

      方式二: first( ), last( ) ; 结果为obj对象 

book=Book.objects.filter(name=PHP).first()
book=Book.objects.filter(name=‘PHP‘).last()

    方式三:  values( )  ; 结果集为:QuerySet <>

li=book=Book.objects.filter(name=java).values(name,price)
<QuerySet [{‘name‘: ‘Java‘, ‘price‘: 299}]>

 

    方式四:  values_list( )  ; 结果集为:QuerySet <>

li=book=Book.objects.filter(name=java).values_list(name,price)

<QuerySet [(‘Java‘, 299)]>

 

    方式五: exclude( ) , 反向取数据 ,结果集为:QuerySet <>

li=book=Book.objects.exclude(name=java).values_list(name,price)
# 查询除了 name=‘java‘的所有数据

    方式六: distinct( ), 去重复,结果集为:QuerySet <>

li=book=Book.objects.values_list(name).distinct()

   方式七: count ( ), 统计,结果 int 整数

count=book=Book.objects.all().count()

 

 

   方式八: 双下划线 

li=Book.objects.filter(id__lt=1, id__gt=10) #  id 大于等于1 且小于等于10
li=Book.objects.filter(id__in=[1,2,3])  # id 在[1,2,3] 里面的数据
li=Book.objects.exclude(id__in=[1, 2, 3])  # id 不在[1,2,3] 里面的数据
li=Book.objects.filter(name__contains=A)  #  name包含A的数据
li = Book.objects.filter(name__icontains=A)  # name包含A的数据,不含大小写
li = Book.objects.filter(pub_date__range=[2020-12-12,2020-12-23])  # between and
# startswith  istartswith, endswith,iendswith   以某某开始,以某某结束

 

Python-django-ORM增删改查

标签:value   更新   let   date   bsp   length   大小   data   增删改查   

原文地址:https://www.cnblogs.com/liangqingyun/p/14327961.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!