django中ORM的查询语句是什么
发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,django中ORM的查询语句是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在日常开发中,数据库的增删改查(CDUR)中,查询需求
千家信息网最后更新 2024年09月22日django中ORM的查询语句是什么
django中ORM的查询语句是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
在日常开发中,数据库的增删改查(CDUR)中,查询需求偏多,所以查询的语法比增删改操作多得多,尤其是跨表关联查询,可以让代码精简很多。
直接上代码吧,我是直接在上次写的的视图函数中改写的。
def orm_test(request):
"""
增加操作
"""
# 新增一个名字为1901的一个班级,create是新增方法,里面可以接受多个字段参数
# Class.objects.create(name="1901")
# 同时新增一个学生和班级操作
# 新增一个班级名称为1903的班级,返回一个班级实例
# cls_instance = Class.objects.get(name="1903")
# stu_info左边的key要和Student模型字段对应上,因为cls是外键,所以要对应一个班级的实例
# stu_info = {
# "name":"XIAOmei",
# "age": "24",
# "score":"88",
# "email": "1333@qq.com",
# "introduce": "假如你是xiaomei",
# "cls": cls_instance
# }
# Student.objects.create(**stu_info)
"""
修改操作
"""
# 将名字为1901的班级名称改为1901_xiu,filter为过滤,支持多个参数,update是更新方法,支持多个参数
# Class.objects.filter(name="1901").update(name="1901_xiu")
"""
删除操作
"""
# 将名字为1901_xiu的班级删除掉,delete是删除方法
# Class.objects.filter(name="1901_xiu").delete()
"""
查询操作
"""
# 查询单条,get返回实例,如果查询结果没有回报错,
# filter查询返回的结果是多个实例的列表,
# instance = Student.objects.get(pk=1)
#instance = Student.objects.filter(pk=1).first()
# 查询多条,返回queryset类型(多个查询结果实例的列表) 可以被迭代
# queryset = Student.objects.all() #
# for stu in queryset:
#学生的姓名 学生的年龄 学生的分数
# print(stu.name,stu.age,stu.score)
#对查询集结果进行切片,取第0个到第4个,和列表的切片一样
# queryset = Student.objects.filter().all()[:5] # limit 语句
# print(queryset.query) # 返回执行的sql语句
# 精准查找 两条语句作用一样,查询姓名位小美的学生,结果返回查询集
# queryset = Student.objects.filter(name='小美')
# queryset = Student.objects.filter(name__exact='小美')
# 忽略大小写
# queryset = Student.objects.filter(name__iexact='xiaomei')
# 模糊查询
# queryset = Student.objects.filter(name__contains='xiao') # 不忽略大小写
# queryset = Student.objects.filter(name__icontains='xiao') # 忽略大小写
# 正则匹配法
# queryset = Student.objects.filter(name__regex='^x')
# queryset = Student.objects.filter(name__iregex='^x')
# 大于 小于
# queryset = Student.objects.filter(age__gt=17, age__lt=19)
# in 一个集合中的所有
# queryset = Student.objects.filter(age__in=(18,17,16))
# queryset = Student.objects.all().order_by('age') 升序
# queryset = Student.objects.all().order_by('-age') #升序
# queryset = Student.objects.all().order_by('-age','id') #升序
# for stu in queryset:
# print stu.age,stu.id
# 指定字段查询
# 第一种
# queryset = Student.objects.values('name','age').all()
# 第二种
# queryset = Student.objects.values_list('name','age','score').all()
# 连表查询
# 第一种
# queryset = Student.objects.all()
# for stu in queryset:
# print stu.name,stu.cls.id,stu.cls.name
# 第二种 : 牛逼的双下划线(跨表),可以用多个双下划线跨多张表
# 语句功能是查询学生表中所有学生的姓名和学生所在班级的名称
# cls__name 是cls双下划线name,cls 是Student中的cls字段,name是班级表中的name字段
# queryset = Student.objects.values('name','cls__name').all()
# 查询一个班级所有学生,执行两次sql语句
# cls1 = Class.objects.get(name='1701')
# queryset = Student.objects.filter(cls=cls1)
# 查询一个班级所有学生,执行一次sql语句
# queryset = models.Student.objects.filter(cls__name='1903').all().values('name','cls__name')
# 查询一个班级所有学生,起始表从班级表开始查询,反向查询
# stu_cls 是学生表中外键的别名
# queryset = Class.objects.get(name='1903').stu_cls.all()
# 按照分数查询 大于90分
# queryset = Student.objects.filter(score__gt=90).all()
return HttpResponse('数据库操作成功')
看完上述内容,你们掌握django中ORM的查询语句是什么的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
查询
班级
学生
语句
多个
字段
实例
方法
结果
下划线
升序
参数
名字
名称
大小
姓名
代码
内容
分数
数据
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
什么叫两个一样的数据库
团日活动网络安全教育内容
cbd软件开发是什么意思
2u服务器的功率
网络安全法每年
数据库主键固定几位数自增长
护庙网络安全课读后感
安全狗服务器名怎么查
购买桌面共享软件开发
主流关系数据库管理系统
数据库关系分解
无法接到服务器
南沱软件开发培训
数据库技术种类
网络安全考核试题
网络技术专业职业岗位表
网络安全中6x3是什么意思
优房天津网络技术有限公司邮编
宁阳app软件开发公司
沙雕服务器
网络安全法 远程日志
知道ip怎么进入服务器
我的世界服务器如何用命令换皮肤
非关系型数据库产品
2022年魔兽世界好服务器
樱花云服务器免费网站嫩草视频
登录器数据库
杭州码农软件开发
将excel 导入数据库
系统服务器dan机