python框架Django模型增删查改方法(常用)

一、创建数据

1、mymodel.objects.create(属性1=值1,属性2=值2),成功返回实体对象,错误抛出异常

2、obj = mymodel(属性1=值1,属性2=值2)

     obj.save()

二、查询数据

1、mymodel.objects.all()--select * from table,返回queryset容器对象,内部存放mymodel实例

2、mymodel.objects.values('字段名1',''字段名2'),返回对应字段的字典值

3、mymodel.objects.values_list('字段名1',''字段名2'),list放的是元组,返回对应字段的元组

4、mymodel.objects.order_by('字段名'),升序查询; mymodel.objects.order_by('-字段名'),降序查询,返回object对象

5、mymodel.objects.filter(属性1=值1,属性2=值2)

mymodel.objects.filter(字段__exact=1)exact:等值匹配

mymodel.objects.filter(字段__contains='w'),等同于sql的like '%w%'语句

mymodel.objects.filter(字段__startswith='w'),等同于sql的like 'w%'语句

mymodel.objects.filter(字段__endswith='w'),等同于sql的like '%w'语句

mymodel.objects.filter(字段__gte=10),查询字段大于10

mymodel.objects.filter(字段__lt=10),查询字段小于10

mymodel.objects.filter(字段__lte=10),查询字段小于或等于10

mymodel.objects.filter(字段__in=[1,2,3]),查询字段是否在1,2,3里面

mymodel.objects.filter(字段__range=(1,100)),查询字段是否在1到100范围

6、mymodel.objects.exclude(属性1=值1,属性2=值2),查询不包含此条件的

7、mymodel.objects.get(属性1=值1,属性2=值2),查询满足条件唯一一条数据,查询结果大于1或者无数据则抛出异常

三、修改数据

1、单条数据修改(查--改--存)

① 通过get()获得唯一数据值对象; ② 对象.字段 = 新的值; ③ 对象.save( )

2、多条数据修改

① 通过查询语句查出数据;② 对象.update(字段 = 新的值)

四、删除数据

1、单个数据删除(查-删)

① 通过get()获得数据;② 对象.delete();

2、批量删除数据(查-删)

① 通过filter获得数据;② 对象.delete();

五、F对象和Q对象

F对象:类似并发的锁机制,能够生成+=的sql语句,F('字段名')表示暂时不查找该字段名的值;

Q对象:获取查询结果集,逻辑或“|”,逻辑非“~”,逻辑与“&”等操作

model.objects.filter(Q(条件1)|Q(条件2)) # 查找条件1或条件2成立的数据

六、聚合查询

1、整表聚合 -- 聚合函数: Sum, Avg, Count, Max, Min, 返回字典结果

① 导入 from django.db.models import *

② mymodel.objects.aggregate(结果变量名 = 聚合函数('列'))

2、分组聚合 -- QuerySet.annotate(结果变量名 = 聚合函数('列')),QuerySet表示查询后的集合

七、原生数据库操作

1、mymodel.objects.raw(sql语句, 拼接参数),返回集合对象

例:Book.objects.raw('select * from table where id = %s', ['1']),能够防止sql注入

2、

from django.db import connection
with connetion.cursor() as cur:
     cur.execute(sql语句,['拼接参数'])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LINGK98

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值