一、操作步骤
   
1.首先在models.py文件中创建模型。
2.用django命令:python manage.py makemigrations (在django中可以将脚本转化成mysql语句,进行映射关系)
3.再用django命令:python manage.py migtate (可以执行sql语句和再将表生成)一定要将这个表生成到到我们的已有的那个库当中
4.这个时候会出现一些新生成的表,但是有一个非常特殊的表,表名为:项目名_应用名
5.那么我们直接将有数据的那张老表的名字,改成原来的django生成表的名字,然后就可以用django里面的命令,提取数据库中的数据
    
     总结:一定要将django创建的表放到已有的库中
    
    
    二、django中对数据库的操作
   
    1、筛选数据
   
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() 
