针对Django常用查询SQL语句的使用代码,下面是详细攻略:
1. 准备工作
首先,需要在Django中安装好数据库,如MySQL、PostgreSQL等,并在settings.py
中设置好数据库的连接信息。
2. 查询数据
2.1 简单查询
Django提供了多种查询方式,在使用前需要导入models
模块中的相关类。例如,查询Student
表中所有学生的姓名和年龄:
from app.models import Student
students = Student.objects.all() # 获取所有学生记录
for student in students:
print(student.name, student.age) # 输出学生姓名和年龄
这里的Student
是一个继承自models.Model
的模型类,其中name
和age
是模型类中定义的字段名。
2.2 条件查询
除了简单查询外,Django还支持条件查询,可以添加过滤条件。例如,查询Student
表中年龄大于18岁的学生姓名和年龄:
from app.models import Student
students = Student.objects.filter(age__gt=18) # age__gt表示age字段大于18
for student in students:
print(student.name, student.age)
这里的__gt
表示大于,Django还支持其他类型的比较符,如__lt
(小于)、__gte
(大于等于)等。
2.3 聚合查询
聚合查询是对某个字段进行求和、计数等操作,Django提供了多种聚合函数。例如,查询Student
表中学生的总数:
from app.models import Student
from django.db.models import Count
count = Student.objects.aggregate(Count('id')) # 统计学生总数,使用id字段进行聚合
print(count)
聚合函数需要导入django.db.models
模块,这里的Count('id')
表示对id
字段进行计数。
2.4 分组查询
分组查询是对某个字段进行分组,然后再进行聚合查询。例如,查询Student
表中每个年龄段的学生总数:
from app.models import Student
from django.db.models import Count
groups = Student.objects.values('age').annotate(count=Count('id'))
for group in groups:
print(group['age'], group['count']) # 输出每个年龄段的学生数
这里的values('age')
表示按照age
字段分组,annotate(count=Count('id'))
表示对每组进行计数,最后再输出结果。
3. 更新数据
针对数据更新,Django中也提供了便捷的API,只需要调用模型类的objects
对象即可。例如,将学生王五的年龄改为20岁:
from app.models import Student
student = Student.objects.get(name='王五') # 获取名字为'王五'的学生对象
student.age = 20 # 修改年龄
student.save() # 保存修改
4. 删除数据
最后,针对数据删除,Django也提供了相应的API。例如,删除学生王五的记录:
from app.models import Student
student = Student.objects.get(name='王五') # 获取名字为'王五'的学生对象
student.delete() # 删除对象
删除操作也可以使用objects
对象的filter
方法进行条件删除。
以上就是Django常用查询SQL语句的使用代码的详细攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:djang常用查询SQL语句的使用代码 - Python技术站