Django的ORM(2)

作者: wangcc_sd | 来源:发表于2019-03-20 23:47 被阅读1次

    添加表记录

    方法1

    # create方法的返回值book_obj就是插入book表中的python葵花宝典这本书籍纪录对象
      book_obj=Book.objects.create(title="python葵花宝典",state=True,price=100,publish="苹果出版社",pub_date="2012-12-12")
    
    

    方法2

    book_obj=Book(title="python葵花宝典",state=True,price=100,publish="苹果出版社",pub_date="2012-12-12")
    book_obj.save()
    

    查询表纪录

    查询api------>使用说明

    <1> all():                  查询所有结果
    <2> filter(**kwargs):       它包含了与所给筛选条件相匹配的对象
    <3> get(**kwargs):          返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。
    <4> exclude(**kwargs):      它包含了与所给筛选条件不匹配的对象
    <5> order_by(*field):       对查询结果排序
    <6> reverse():              对查询结果反向排序
    <8> count():                返回数据库中匹配查询(QuerySet)的对象数量。
    <9> first():                返回第一条记录
    <10> last():                返回最后一条记录
    <11> exists():              如果QuerySet包含数据,就返回True,否则返回False
    <12> values(*field):        返回一个ValueQuerySet——一个特殊的QuerySet,运行后得到的并不是一系列
                                model的实例化对象,而是一个可迭代的字典序列
    <13> values_list(*field):   它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列
    <14> distinct():            从返回结果中剔除重复纪录
    

    views.py

    from django.shortcuts import render,HttpResponse
    
    # Create your views here.
    from  app01.models import Book
    
    def index(request):
        #--------------------添加记录
        #方法1
        #book_obj = Book(id=1,title='python 红宝书',price=100,pub_date='2012-12-12',publish='人民出出版社',state=True)
        #book_obj.save()
        #方法2
        # book_obj=Book.objects.create(title='go',price=100,pub_date='2014-12-12',publish='山东教育出版社',state=True)
        # print(book_obj.title)
        # print(book_obj.price)
        # print(book_obj.pub_date)
    
        #---------------------查询
        '''
        1、方法的返回值类型   QuerySet
        2、方法的调用者
        :param request:
        :return:
        '''
        # all方法   返回值是一个 QuerySet对象
        #book_list=Book.objects.all()
        # print(book_list)     #[obj1.obj2]
        # for obj  in book_list:
        #     print(obj)
        # print(book_list[1].title)
    
        #first   和  last 方法
        #book = Book.objects.all().last()
        #print(book)
    
        #filter()  #条件过滤     返回 QuerySet对象
        # book_list = Book.objects.filter(title='go')
        # print(book_list)
    
        #get()  有且只有1个时才有意义,返回值 model对象
        # book_list= Book.objects.get(title='go')
        # print(book_list.price)
    
        #exclude   排除某个属性
        # ret = Book.objects.exclude(title='go')
        # print(ret)
    
        #order_by    -id   降序
        # ret = Book.objects.all().order_by('id')
        # print(ret)
    
        #count()   计数
        # ret = Book.objects.all().count()
        # print(ret)
    
        #  exist()
        # ret = Book.objects.all().exists()
        # print(ret)
    
    
        #value
        # ret = Book.objects.all()
        # for i in ret:
        #     print(i.title)
        #   等价于
        # ret = Book.objects.all().values('price')
        # print(ret)
        '''原理
        values:
        temp = []
        for obj in Book.objects.all()
            temp.append({
                'price'=objects.objects
            })
        return temp
        # [{'price': Decimal('100.00')}, {'price': Decimal('100.00')}, {'price': Decimal('100.00')}, {'price': Decimal('100.00')}
        '''
    
        # values_list   它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列
        # ret = Book.objects.all().values_list('price')
        # print(ret)
    
        #distince  去重
        # ret = Book.objects.all().values('price').distinct()
        # print(ret)
        #返回类型
    
    
        #模糊查询
        #GT  查询价格大于 99   lt 小于
        ret =Book.objects.filter(price__gt=99,price__lt=101)
        print(ret)
        Book.objects.filter(price__in=[100, 200, 300])
        Book.objects.filter(price__gt=100)
        Book.objects.filter(price__lt=100)
        Book.objects.filter(price__range=[100, 200])
        Book.objects.filter(title__contains="python")
        Book.objects.filter(title__icontains="python")
        Book.objects.filter(title__startswith="py")
        Book.objects.filter(pub_date__year=2012)
        return HttpResponse(r'ok')
    
    11895932.jpg

    相关文章

      网友评论

        本文标题:Django的ORM(2)

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