Django用类的形式操作数据库
用类(函数)的形式来操作数据库不容易出错, 方便, 快捷.
一: 在settings.py文件中, 进行配置
# 配置mysql数据
注: 只需将原本的重写即可
DATABASES = {
'default': {
# 使用的数据库类型
'ENGINE': 'django.db.backends.mysql',
# 使用的数据库名称
'NAME': '数据库名称',
# 连接数据库用户名
'USER': '用户名',
'PASSWORD': '密码',
'HOST': '地址'
}
}
二: 在models.py文件中
1> 自定义类
# 建立数据模型
# 继承自models.Model数据模型基类
class Message(models.Model):
注: 如果不创建主键, 系统会自己创建
# IntegerField: 整数类型
# default: 默认值
# primary_key=True: 设置主键
# null=False, blank=True: 字段数据非空
ID = models.IntegerField(default=0, primary_key=True, null=False)
# max_lenght: 指定长度
name = models.CharField(max_lenght=20, null=False)
class Meta:
# 声明表名称
db_table = 'message'
2> 运行
打开run manage.py task, 执行makemigrations, 生成数据库变更文件
执行migrate命令, 执行数据库变更文件
注: 如果需要对数据库模型做修改, 要先执行makemigrations生成数据模型变更文件, 在执行migrate执行变更文件(一定)
三: 在app下的views.py文件中
1> 引入写好的类
from .models import MesModel
2> 操作数据库
# 查询数据库所有数据, 是一个列表, 列表中存放数据对象
MesModel.objects.all()
# get()获取一个指定条件的对象
MesModel.objects.get(字段名='值')
# 更改数据
msg = MesModel.objects.get()
msg.字段名 = '新值'
# 保存
msg.save()
# 根据条件筛选多条数据
# id__gt: 大于 id__lt: 小于 id__gte: 小于等于
# id__lte: 小于等于
# 双下划线
MesModel.objects.filter(id__gt=1)
# 删除数据
MesModel.object.get(id=1).delete()
# 创建对象之后, 会将对象的信息直接保存到数据库
MesModel.objects.create(字段名='值', 字段名='值', ......)
# 创建对象, 再给对象属性赋值, 如需保存需要调用save()函数
msg = MesModel(字段名='新值', ......)
msg.save( )
# get_or_create 先获取是否有该数据, 如果没有在进行添加
# 返回结果是一个元组, 元组中存放创建的对象, 创建结果True/False
实例: