如何从别人的数据库导入到自己的django中

一、操作步骤

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()

 

你可能感兴趣的:(如何从别人的数据库导入到自己的django中)