美文网首页
QuerySet详解一

QuerySet详解一

作者: Chris的算法小记 | 来源:发表于2019-04-08 15:51 被阅读0次

    一、前言

    对于QuerySet中一些常用方法我们已经很熟悉了,比如get、filter、exclude、delete,接下来就深挖一下QuerySet的其他方法。

    二、定义model

    class Wiki(models.Model):
        name = models.CharField(max_length=100)
        content = models.TextField()
     
        def __str__(self): 
            return self.name
    

    三、QuerySet

    1.新建对象--create()

    Wiki.objects.create()
    

    2.获取对象

    Wiki.objects.all()
    Wiki.objects.all()[:10]
    Wiki.objects.all().reverse()[:2]
    Wiki.objects.get(name='me')   # 获取name为me的对象,只能获取一个,如果有重名对象会报错
    Wiki.objects. filter(name='me')  # 获取name为me的对象,可以是多个
    Wiki.objects. filter(name__iexact='me')  # 获取name为me的对象,但不区分大小写
    Wiki.objects. filter(name__icontains='me')  # 获取name中包含me的对象
    Wiki.objects.filter(name__regex = '^abc')  # 正则表达式查询
    Wiki.objects.exclude(name__contains = 'me')   # 排除包含me的对象
    Wiki.objects.filter(name__contains = 'me').exclude(content = 'hello')  # 找出name含有me但content不是hello的对象
    

    3.删除对象--delete()

    Wiki.objects.all().delete()       # 删除全局数据
    Wiki.objects.get(name='me').delete()    # 删除name为me的对象
    Wiki.objects.filter(name__contains='me').delete()    # 删除name中包含me的对象
    

    4.更新

    (1)批量更新

    Wiki.objects.filter(name__contains = 'abc').update(name = 'def')
    

    (2)单个更新

    适用于get()、get_or_create()、update_or_create()
    w = Wiki.objects.get(name = 'me')
    w.name = 'she'
    w.content = 'my name is she.'
    w.save()  # 切记保存
    # 将name为me的对象更新为she
    

    5.排序

    Wiki.objects.all().order_by('name')   
    Wiki.objects.all().order_by('-name')   # 倒序
    Wiki.objects.all().order_by('-name','id')  # 链式排序
    

    6.迭代

    items=Wiki.objects.all()
    for each in items:
        print(each.name)
    

    如果觉得文章对您还有用,就支付宝扫个红包码,支持一下吧。


    3BDCAFBAB4D9360B3AF7A6BC7E7A0CC2.jpg

    参考:https://docs.djangoproject.com/en/2.1/ref/models/querysets/

    相关文章

      网友评论

          本文标题:QuerySet详解一

          本文链接:https://www.haomeiwen.com/subject/mttpiqtx.html