1.首先在models.py文件中创建模型。
2.用django命令:python manage.py makemigrations (在django中可以将脚本转化成mysql语句,进行映射关系)
3.再用django命令:python manage.py migtate (可以执行sql语句和再将表生成)一定要将这个表生成到到我们的已有的那个库当中
4.这个时候会出现一些新生成的表,但是有一个非常特殊的表,表名为:项目名_应用名
5.那么我们直接将有数据的那张老表的名字,改成原来的django生成表的名字,然后就可以用django里面的命令,提取数据库中的数据
1.filter()
filter是一个迭代器,用于筛选满足某些条件的记录,多个条件之间用逗号隔开。
filter相当于一个容器,把满足条件的记录都装在这个容器中,所以必须用 for in 读取数据。若不存在满足条件的记录,容器返回空。
a.匹配多个条件
查询Student表中80后的学生
stus = Students.objects.filter(s_birth__gte='1980-01-01', s_birth__lte='1989-12-31')
b.获取指定的多条记录
获取指定多个id的值
ids = [1, 2, 5]
stus = Students.objects.filter(id__in=ids)
2.get()
get获取满足记录的一条记录,即使满足条件的有多条记录,也只会返回一条,所以读取数据的时候不能用 for in结构;若不存在满足条件的记录,程序会报错。
查询学生李白的信息
stus = Students.objects.filter(s_name='李白')
3.all()
all用于查询表中的所有内容,返回的内容也是装在容器中,
查询Student表中所有学生
stus = Students.objects.all()
4.first()
获取满足条件的第一个记录
stu = Student.objects.all().first()
5.last()
获取满足条件的最后一个记录
stu = Student.objects.all().last()
6.[ ]
[]切片,如[0]表示取满足条件的第一条记录。
[start, end] 从start开始取值,取到end - 1
stu = Student.objects.all()[0]
7.F()
F用于获取当前对象某属性的值,适用于比较一个对象的多个属性。
查找语文成绩大于数学成绩10的学生
stus = Student.objects.filter(s_yuwen__gt=F('s_shuxue')+10)
8.& | Q ~
&并且,相当于and;|或,相当于or。
& | 都要搭配Q使用,~表示非,如~Q(s_sex='1'),表示匹配sex不是1的学生。
查询语文成绩大于90分的男生
stus = Student.objects.filter(Q(s_yuwen__gt=90) & Q(s_sex='1'))
9.order by()
order by排序,默认排升序,若要按照降序排列,在属性前加-符号
按照语文成绩的高低排列学生,要求从高到低排列
stus = Student.objects.all().order by('-s_yuwen')
10.count()
count对筛选的内容进行计数
获取男生的数据个数
stus = Students.objects.filter(stu_sex=True).count()
11.exists()
exists是否存在,判断某属性值是否存在,返回布尔值。
判断是否存在姓名为李白的学生
stus = Students.objects.filter(stu_name='李白').exists()
12.模糊匹配
a.contains
contains包括,只要属性值包含某字段即符合条件
查询名字中包含王的学生
stus = Student.objects.filter(s_name__contains='王')
b.startswith
startswith以某字符开始,匹配属性值以某字符串开始的记录
查询姓李的学生
stus = Student.objects.filter(s_name__startswith='李')
c.endswith
endswith以某字符结尾,匹配属性值以某字符串结尾的记录
查询名字最后一个字是天的学生
stus = Student.objects.filter(s_name__endswith='天')
13.update()
update更新,对筛选出的记录中的属性值进行修改
修改id=1的学生的姓名为派大星
Student.objects.filter(id='1').update(stu_name='派大星')
14.delete()
delete删除,删除筛选出的所有记录
删除20岁的学生
Student.objects.filter(stu_age='20').delete()