1. ORM框架
-
Django提供的ORM框架,可以简化MySQL代码,节省书写MySQL语句的时间。
具体功能如下:
- 创建、修改、删除数据库的表(不用写SQL语句,无法创建数据库)。
- 修改表中数据(不用写SQL语句)。
2. ORM使用
-
安装mysql包
注:Windows系统大概率安装失败,可直接去https://pypi.org/project/mysqlclient下载mysqlclient包,并通过终端输入pip install 包名
进行安装 -
进行settings.py数据库配置
数据库配置
DATABASES = { "default": { "ENGINE": "django.db.backends.mysql", "NAME": "test", # 数据库名称 "USER": "root", "PASSWORD": "123456", "HOST": "127.0.0.1", # MySQL所属服务器 "PORT": 3306, } }
-
在models.py中创建表
创建表
class UserInfo(models.Model): name = models.CharField(max_length=32) password = models.CharField(max_length=64) age = models.IntegerField() # 上面代码会转化成SQL语句 """ create table app01_userinfo( id bigint auto_increment primary key, name varchar(32), password varchar(64), age int ) """
-
操纵表:可以通过注释和添加代码的方式增删表,对表结构进行调整。
注:如果该表中已有数据,则Django会提供两种方案:1.统一赋一个值;2.自行对表值定义(可设置为空)。 -
操作数据
操作数据
# 新建数据 insert into app01_userinfo(name) values("张三") UserInfo.objects.create(name="张三")
删除数据
UserInfo.objects.filter(id = 3).delete() # 把表中id为3的数据删除 UserInfo.objects.all().delete() # 把表中数据全部删除
获取数据
# ### 3.获取数据 ### # data_list = [对象, 对象, 对象] QuerySet类型 # data_list = UserInfo.objects.all() # 查询表中所有数据 # # print(data_list) # 输出 # for obj in data_list: # 依次获取 # print(obj.id, obj.name, obj.password, obj.age) # data_list = [对象] # data_list = UserInfo.objects.filter(id = 1) # 过去id为1的数据 # print(data_list) # 获取一条数据【对象】 row_obj = UserInfo.objects.filter(id = 1).first() print(row_obj.id, row_obj.name, row_obj.password, row_obj.age)
更新数据
# ### 4.更新数据 ### UserInfo.objects.all().update(password=999) # 查找表中所有数据,将密码改为999 UserInfo.objects.filter(id=2).update(age=999) # 查找表中id为2的数据,将其密码改为999
终端启动
python manage.py makemigrations # 更新表结构 python manage.py migrate