1.首先进入settings里面
2.在models里面声明数据类型
2.1 首先引入需要的工具包
import MySQLdb
2.2 创建table表各个字段的类型
models.AutoField 自增列= int(11)
如果没有的话,默认会生成一个名称为 id 的列,如果要显示的自定义一个自增列,必须将给列设置为主键 primary_key=True
2.3 自定义表的名称
2.4 执行完上述接下来就是运行命令对表进行创建了
打开run manage.py task ,执行makemigrations 生成数据库变更文件
执行migrate命令,执行数据库变更文件
如果需要对数据模型类做修改,要先执行makemigrations生成数据模型变更文件,在执行migrate 执行变更文件
执行完已经完成了对数据库表格的创建
下面就是对数据库进行增删改查了
首先要引入在models中创建的类
from .models import MesModel
1、查
查询数据库中的所有数据,得到的是一个列表,列表中存放数据对象,最后需要用一个变量接收
rs=MesModel.objects.all()
get()得到一个指定条件的对象,左右也需要用一个变量接收,value指的是字段名,是一行
rs=MesModel.objects.get(value=)例如
MesModel.objects.get(id=1)就是取出id=1的这一行数据
rs=MesModel.objects.all().values('') 只取出表中的某一列
rs=MesModel.objects.all().values_list('','') 取出表中的某两列,得到的是一个列表
根据条件筛选多条数据
大于 id__gt 小于 id__lt 大于等于 id__gte 小于等于 id__lte
查询的id大于1的数据
msgs = MesModel.objects.filter(id__gt = 1)
msgs=MesModel.objects.filter(id__lt=10, id__gt=1) # 获取id大于1 且 小于10的值
msgs=MesModel.objects.filter(id__in=[11, 22, 33]) # 获取id等于11、22、33的数据
msgs=MesModel.objects.exclude(id__in=[11, 22, 33]) # not in
msgs=MesModel.objects.filter(id__range=[1, 2]) # 范围bettwen and
msgs=MesModel.objects.filter(name__contains="ven") msgs=MesModel.objects.filter(name__icontains="ven") # icontains大小写不敏感 msgs=MesModel.objects.exclude(name__icontains="ven")
2.增加
2.1.创建对象之后,会将对象的信息直接保存到数据库
MesModel.objects.create(name=name,email=email,address=address,suggest=message)
2.2创建对象 再给对象属性赋值,如需保存需要调用save()函数
msg = MesModel(name=name,email=email,address=address,suggest=message)
执行save函数相当于执行了 insert into message (name,email,address,suggest) values('小明','123456@qq.com','郑州','没有建议') 这个sql语句
msg.save()
2.3.get_or_create 先获取是否有该数据,如果没有在进行添加
返回结果是一个元组,元组中存放创建的对象,创建结果True/False
try: res = MesModel.objects.get_or_create(name=name,email=email,address=address,suggest=message) except Exception as e: return HttpResponse('该id已存在,请检查后重新输入')
我们已经通过上面的查询获得了某一条数据 返回的是对象,直接通过对象.属性就可以实现数据库的修改
最后对象.save()保存就可以了
4.删除
通过查询到某一条数据后直接.delete()就可以
例如:
MesModel.objects.get(id=1).delete()