ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

今日学习

2022-06-26 20:31:07  阅读:110  来源: 互联网

标签:name 老师 外键 查询 学习 objects 今日 id


#### F Q查询

1. 导包
- 导入F Q
- 导入要操作的模型类
2. F:同一个表中字段进行比较时用F查询
- 模型类.objects.filter(字段条件 = F("字段"))
- Movies.objects.filter(id__gt=F("price"))
- 语法 F("属性名") 属性名加引号
3. Q:多个条件时用Q查询
- 如果条件之间是并且的关系(多个过滤器连续操作、Q查询)
- 如果条件之间是或者的关系必须用Q查询
- Movies.objects.filter(Q(id__gt=2) | Q(price__gt=5))
- Q(字段__条件)

 

#### 表关系

1. 一对多

- mysql中的外键
1. 外键是一种约束,外键不是让2张表产生关系的,是限制外键字段更新和插入数据的
- django中的外键
1. 老师模型类 名字 性别
2. 学生模型类 姓名 分数 所属老师

- 外键

```python
# 所属老师 to:关联的模型类
# on_delete:models.CASCADE :如果主表中数据删除 那么从表中数据也删除
# django中的外键字段会默认多一个_id
tea = models.ForeignKey(to=Teacher,on_delete=models.CASCADE,verbose_name="所属老师id")
```

- 增删改查

1. 增加数据

- 增加老师

模型类.objects.create(字段=值...)

t1是随便起的变量名

t1 = Teacher.objects.create(name= "曹老师",gender="女")

- 增加学生

1.Student.objects.create(name="小明",score=20,tea_id=2) # 通过外键_id的形式来添加

2.Student.objects.create(name="小明",score=20,tea=老师对象) # 直接给外键赋值一个老师对象

Student.objects.create(name="小华",score=40,tea=t1)

2. 查询数据

- 查询老师

查询id为2的老师以及它的学生(通过老师查询学生)--(由一查多) 反向查询 特别重要

Student.objects.filter(tea_id=2)

1.先询id为2的老师并且存到变量李

t2 = Teacher.objects.get(id=2)

查询t2老师下的学生

t2.student_set.all()

- 查询学生

查询id为2的学生以及他的老师姓名---(由多查一) 正向查询

1. 先将id为2的学生查询出来

s1 = Student.objects.get(id=2)

2. 根据查询出来的学生信息找到对应的老师

s1.外键.查询的字段

3. 删除数据

- 删除老师

1. 删除id为1的老师信息

Teacher.objects.get(id=1).delete()

 

搜索

复制

标签:name,老师,外键,查询,学习,objects,今日,id
来源: https://www.cnblogs.com/qq0523/p/16414266.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有