对Model进行操作

Model
    1、插入(略)
    2、查询
        1、基本查询操作 - Entry.objects.all()
        2、查询接口
            1、all()
                Entry.objects.all()
                select * from .... ....
            2、values("字段名",'字段名')
                作用:查询所有行某一列的值
                Entry.objects.all().values('name')
                select name from ... ...
            3、get()
                只查找一条记录时使用,只能返回一条记录,如果返回多条,则报错
            4、filter()
                自定义查找条件,可以给多个条件,如果是多条件,则使用 AND 连接
                1、有Entry的属性作为filter的条件
                    Author.objects.filter(name='xx')
                    select * from author where name='xx'

                    Author.objects.filter(name='xx',age=15)
                    select * from author where name='xx' and age=15
                2、使用 Field Lookups
                    Author.objects.filter(id__gt=4)
                    select * from * where id>4
                3、Author.objects.filter(id__exact=5);
                    select * from * where id=5
                4、Author.objects.filter(name__contains='zh')
                    select * from * where name like '%zh%'
                5、Author.objects.filter(id__in=[1,2,3])
                    select * from * where id in (1,2,3)
                6、
                inner_query = Author.objects.filter(name__exact='逐梦').values('age')

                authors = Author.objects.filter(age__gt=inner_query)
            5、exclude() : 对条件取反
                Author.objects.exclude(name='zh',age=28)

                select * from author where not(name='zh' and age=28)
            6、order_by()
                按指定的字段们进行排序,如果是多个的话,中间用 , 隔开,默认是升序排序,降序则在名称添加 -即可
                Author.objects.order_by('-name','-age')
    3、修改接口
        1、修改单个对象
            先通过get获取到响应的Model对象,再Model对象修改值,最后调用Model对象的 save() 函数 即可

            obj=Author.objects.get(id=1)
            obj.name = "问道"
            obj.age = 25
            obj.save()
        2、批量修改(修改结果集的值)
            调用 update() 函数即可
            Author.objects.all().update(字段='值',...)
    4、删除接口
        1、删除单个对象
            获取删除的对象,调用 delete()
            obj = Author.object.get(id=1)
            obj.delete()
        2、批量删除
            得到查询结果集之后 调用 delete()
            Author.objects.all().delete()
    5、F()操作 和 Q()操作
        1、F()操作
            作用:专门获取对象中某列的值
            语法:F('列名')

            from django.db.model import F

            def do_F(request):
                authors = Author.objects.all();
                authors.update(age=F('age')+10)
                return HttpResponse("... ...");
        2、Q()操作
            作用:对对象进行复杂操作,自定义关联多个查询条件

            def do_Q(request):
                q = Q()
                q.connector = 'AND' //指定查询的关联条件
                q.children.append(('id',2))
                q.children.append(('age',25))
                authors = Author.objects.filter(q)
                return render(...)
    6、原生的数据库操作
        1、查询
            函数:raw()
            语法:Entry.objects.raw(sql)
        2、增删改
            def sql(request):
                with connection.cursor() as cursor:
                sql = 'delete from index_author where id=5'
                cursor.execute(sql)
                return render(...)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值