要从数据库中查找满足某种对比条件的样本时,会使用到Django中自带的F对象,但是需要手动导入这个模块.
1 | gra = Grade.objects.filter(g_name='python').first() |
查询一个班级中语文成绩大于等于数学成绩的学生,需要知道的是如果是直接比较而不通过F对象的话,会直接出现小红线报错.
如果我要去查询同时满足多个条件的样本时,有两种方法,一种是直接用逗号分割条件,
1 | gra = Grade.objects.filter(g_name='python').first() |
另外一种是使用Q查询对象,该对象不仅提供了’与’的运算,同时还支持’或’,’非’运算,
1 | gra = Grade.objects.filter(g_name='python').first() |
查询一个班级中语文成绩大于等于80并且性别为女生的样本,Q对象提供了&,|,~三种逻辑运算,所以可以很方便进行筛选查找,同样也需要手动导入.
也可以同时在一条查询语句中同时使用这两种对象,
1 | gra = Grade.objects.filter(g_name='python').first() |
查询一个语文成绩大于等于数学成绩加10分并且性别是男生的样本.