文章目录
- 前言
-
目录
前言:
经过我们之前的学习了解了Django的模板语法与使用规则,从这章开始就要向下深入,了解Django是怎么操作数据库的
在学习python时,小编学会了一个第三方库就是pymysql,那么在Django中我们需要一个插件就是mysqlclient,等同于pymysql,首先我们安装一下
pip install mysqlclient
ORM:
可以帮我们做两件事:
- 创建,修改,删除数据库中的表(就不用写sql语句了),但是它不能帮我们创建数据库
- 操作数据库中的表
接下来我们自己创建数据库
- 启动mysql服务
- 自己创建数据库
Django链接数据库
打开settings.py文件
找到这里
然后将下面的代码放到这里(将原来的注释掉)
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
# 数据库名字
'NAME': 'csdn',
# 数据库账号
'USER': 'csdn',
# 数据库密码
'PASSWORD': 'rootroot',
# 数据库本机位置默认127.0.0.1
'HOST': '127.0.0.1',
# 默认端口
'PORT': 3306,
}
}
这样我们的django就连接到了我们的mysql数据库,接下来我们进入下一步用django操作表
- 创建表
- 删除表
- 修改表
然后找到app目录下的models.py,我们所有的建表都写到这里
接下来再看代码看语法
首先我们要新建一个类,继承models.Model类
from django.db import models
# 必须这么写新建一个类,继承models.Model
class UserInfo(models.Model):
# 写一个字段name为字符串类型
name = models.CharField(max_length=32)
# password为字符串类型
password = models.CharField(max_length=64)
# age为整形
age = models.IntegerField()
写完这一段代码之后有什么用呢?
ORM组件会在底层为我们实现下面的代码
create table app名称_类的名字的小写(
name varchar(32),
password varchar(64),
age int
然后还会自动给我们加id这一列
id bigint auto_increment primary key,
)
然后ORM就帮我们生成表,但我们需要执行两个命令才能生成表在我们的数据库中。
首先打开终端:
然后在终端执行我们的第一个命令:
python manage.py makemigrations
然后回车等待:会出现这个结果就说明我们的操作正确
然后在执行这个命令
python manage.py migrate
然后运行:这样我们就成功了
然后你们可以去验证一下去数据库里,小编这里就不带大家演示了,然后我们说一下这两个命令
首先第一个
python manage.py makemigrations
这个命令会生成一个表我们看下面的操作
在这个目录下会给我们生成个表
然后第二个命令
python manage.py migrate
会将表同步给数据库,这样数据库中就有这个表了,以后再新增表都要执行这两个操作
注意:
同步数据库的表时一定要先将app激活,不然会同步失败
ORM的增删改查:
新增数据:
# 新增数据
UserInfo.objects.create(name="Love 柳")
模板:
类名+objects+create(数据库字段="要添加的东西") 就是新增数据
然后我们打开views.py文件将数据库导入
from app01.models import UserInfo
结合之前的代码,以后我们就可以在view.py文件中操作数据了
删除数据:
删除有两种:
- 删除一行
# 删除数据
UserInfo.objects.filter(id=1).delete()
filter()里面加条件,图中就是删掉id=1的那一行
- 删除全部:
# 删除全部数据
UserInfo.objects.all().delete()
查找数据:
# 获取数据
UserInfo.objects.all()
那么获取的是什么呢我们通过type打印一下类型
print(type(UserInfo.objects.all()))
这时我们发现是QuerySet,大家可以把它理解成为一个列表,那我们再深入一下
info = UserInfo.objects.all().first()
我们可以通过.frist获取到到对象,然后就可以通过对象从而拿到数据库中的数据
info = UserInfo.objects.all().first()
print(info.id, info.name, info.password, info.age)
最后运行一下
拿到了数据,这就是查
修改数据:
# 修改数据
UserInfo.objects.all().update(age=13)
这段代码的含义就是把数据库中所有的age都改为13
如果只想改某一行:
# 修改某一行数据
UserInfo.objects.filter(id=1).update(age=13)
模板:
filter(哪一行).update(什么数据)
这就是修改
总结:
这就是我们要知道的ORM组件,连接数据库及增删改查,这是我们必须要掌握的,以便于以后的开发,那么下一期呢我会给大家分享一个带有中间件的程序,只不过html没有美化,但含有Django基础(我们应该掌握的),针对于这个程序,再给大家往后面拓展,深入,你这一期就到这里。