django学习之反向生成模型和增删改查

反向生成模型
在这里插入图片描述
增删改查

增加

直接增加

User.objects.create(username='测试用户',password='123',sex=1)

save保存添加

user=User(username='测试2')
user.password=hashlib.sha1('123'.encode('utf8')).hexdigest()
user.save()

批量插入

users=[]
for i in range(10):
user = User(username='测试2'+str(i),password=str(i))
users.append(user)
User.objects.bulk_create(users)

更新修改

单条更新

user=User.objects.get(pk=276)
    if user:
         user.username='大疆无人机'
         user.save()

更新多条,不需要保存(不要对多表查询做更新)

users=User.objects.filter(uid__gt=277)
users.update(sex=2)

删除

物理删除

 user=User.objects.get(pk=277)
 user.delete()

逻辑删除
在数据库加入是否删除列
点击删除将该字段修改为1
查询时进行删选

查询

查询结果集

	#all()
    # users=User.objects.all()
    #filter where子句 可以串联调用filter之后还可以filter
    # users=User.objects.filter(sex=2).filter(username='wd111')
    # 还可以写到一起
    # users = User.objects.filter(sex=2,username='wd111')

    #exclude 条件取反
    # users=User.objects.exclude(sex=1)

    #只取某一字段
    # users=User.objects.all().values('username')
    # for i in users:
    #     print(i)

    # order 排序
    # users=User.objects.all().order_by('-uid')
	#获取指定列
	users=User.objects.values('sex')
    #distinct 去重
    # users=User.objects.values('sex').distinct()

查询单条结果

	# 查询单条记录,返回多条会抛异常
    # user=User.objects.get(username='卢秋生')
    # first 返回查询结果的第一条
    # user=User.objects.filter(username='卢秋生').first()
    #exits判断是否存在
    user = User.objects.filter(username='卢秋生').exits()

查询结果集限制

		 # user=users[2] #取第几条记录
        # user=users[1:3] #切片 1,2
        #不能使用负下标,可以使用负索引eg:
        # user=users[10:1:-2]

关系运算

关系运算 gt > ;gte >=; lt <; lte <=;
在范围之间 range
in 在范围内
判空 =None
正则 regex
like模糊查询 iregex(正则表达式)

 # user=User.objects.filter(username_regex=r'^w') #以w开头
# user=User.objects.filter(username_regex=r'd') #包含d

统计

先过滤后统计

# num就是统计的别名
user=User.objects.filter.aggregate(num=Count('uid')) #根据uid进行统计

分组统计

#.values()分组,.annotate()分组统计函数与单独统计不同,可以有多个统计
user=User.objects.all().values('sex').annotate(Count('uid'))

多表关联查询
先创建多表关联视图创建出虚拟表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值