ORM框架
安装第三方模块
- pip install mysqlclient


-
创建、修改、删除数据库中的表
-
不需要我们写SQL语句,且无法创建数据库
-
操作表中的数据
-
同样也不需要写SQL语句;表中数据的增、删、改、查
创建数据库
- 启动MySQL服务

- 使用自带工具创建数据库
create database liupc02 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

Django连接数据库
- 在settings.py 文件中进行配置和修改

将自带的sqlite数据库注释

添加数据库配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 默认
'NAME': 'django(注意更换自己的数据库名称)', # 连接的数据库 #一定要存在的数据库名
'HOST': '127.0.0.1', # mysql的ip地址
'PORT': 3306, # mysql的端口
'USER': 'root', # mysql的用户名
'PASSWORD': 'youpwd!!!注意更换' # mysql的密码
}
}

Django操作表
- 在models.py 文件中操作

创建表

- name = models.CharField(max_length=32)
相当于SQL语句中的name varchar(32)
· password = models.CharField(max_length=64)
相当于SQL语句中的passwd varchar(64)
· age = models.IntegerField()
相当于SQL语句中的age int()
- 并且Django会自动默认在表头添加主键ID
执行命令
-
注意:操作这个命令之前需要app提前注册
-
python manage.py makemigrations

- python manage.py migrate

- 查看是否创建成功



删除表
- 将models.py 文件中的内容 注释 或 删除 掉即可(想要删除/注释哪个表就删除/注释哪个类)
修改表
-
如果要向表中添加一列就需要使用命令:python manage.py makemigrations
-
首先需要向class类中添加数据,然后再执行上述命令
-
在表中新增列时,由于已存在列中可能已有数据,所以新增列必须要指定新增列对应的数据(1. 手动输入一个只; 2. 设置默认值(default = 2); 3. 允许为空(null = True, blank = Ture ))
ORM-增、删、改、查
新增
- UserInfo.objects.create(name= "liupc", password= "123456", age=20)
相当于SQL语句中的inster into

删除
- UserInfo.objects.filter(name="liupc").delete()
先当与SQL语句中的delete 列名 from 表名 where 判断条件


查看
- UserInfo.objects.all()
相当与SQL语句中的select * from


修改
- UserInfo.objects.filter(id=2).update(password=999)
相当于数据库中的update 表名 set 列=值 where 条件;
