这部分主要是关于Django中ORM是如何操作数据库中的表。
1、ORM链接数据库
我们在python中可以使用很多方法来操作我们的数据库,比如可以使用pymysql;但是我们正在使用Django来完成我们的任务,而这里面准备了一个ORM框架(可以理解为解释器,可以将我们的python代码转换为mysql代码,这样就不需要我们在写一大堆mysql语句了)
- 首先,我们先下载
mysqlclient
库,因为对于新版的Django框架而言,这个库会比pymysql
更加适用。
我们需要注意,虽然ORM可以操作数据库中的表,但是其不能对数据库进行操作
- 所以,我们需要先在本地创建一个库,然后在
settings.py
文件中进行配置
1 | DATABASES = { |
通过以上的步骤,我们就成功连接数据库了。
2、ORM创建表操作
- 为了创建我们的表格,我们需要到
models.py
中写对应的python代码
1 | # Create your models here. |
以上的python语句会被ORM翻译成如下的mysql语句:
1 | create table app01_userinfo( |
需要注意的是:建表行为必须要此app之前在 settings.py
中注册过才能生效
- 完成了以上步骤之后,我们还需要执行以下两条指令才可以将此处的表格添加到数据库中
1 | python manage.py makemigrations |
还需注意的是,在执行这两条命令时,需要位于项目的根目录下,不然是找不到 manage.py
文件的。
这样一切就大功告成了,我们便可以在本地数据库软件中查看到对应添加的表。
3、ORM修改表结构
在上文我们已经介绍了如何创建表格,那么如果当你想新添加表时,就同样执行那两条python命令就可以了,而如果想要删除掉某个表或者某个元素,只需要注释掉再执行python命令即可。但是当你想要新增加表中的元素时,考虑到原来表中其他元素存在对应值,所以新增加的元素这列的值需要你来决定,以下是几种决定方式:
- 手动输入特定值
- 添加默认值:
1 | age = models.IntegerField(default=2) |
接下来,我们将要学习如何使用对应的语句来对表中数据进行修改:
- 添加操作
为了在表中添加一条记录,我们可以使用以下语句:
1 | 表名.objects.create(填入表结构对应的属性值) |
- 删除操作
为了在表中删除对应的记录,回想我们在数据库中学到的知识,我们要删除记录就必须要筛选到那一条记录,所以使用以下的语句:
1 | 表名.objects.filter(筛选条件).delete() |
- 获取数据
我们在使用Django时免不了要查看数据库中的数据,那么就可以使用以下的语句:
1 | 变量名 = 表名.objects.all()/filter() |
note warning 注意:当我们执行查询时返回的数据类型为queryset
类型,而每个表中元组作为对象在返回的数据类型中,可以理解为返回数据为list
,而表中每行都是其中的一个元素
为此,我们可以这样访问:
1 | # example |
我们还需要注意即使是添加了筛选条件返回的数据类型也是queryset
类型,所以还是要用列表的形式来访问:
1 | # example |
但是,当我们添加更多的条件时,就会直接筛选出对应的对象。此时,我们可以看到添加了.first()
的条件后,就是默认取出列表中的第一个对象,这样便可以直接访问,而不需要使用列表的形式访问。
1 | # example |
- 更新数据
到目前为止,表操作只剩下了更新数据,而该语法也与上面的的大同小异:
1 | 表名.objects.筛选条件.update(更新项目) |