用Django里面的models操作数据库

时间:2022-09-12 15:12:14

1.首先进入settings里面

用Django里面的models操作数据库

2.在models里面声明数据类型

    2.1 首先引入需要的工具包

import MySQLdb

    2.2    创建table表各个字段的类型

用Django里面的models操作数据库

models.AutoField 自增列= int(11) 
如果没有的话,默认会生成一个名称为 id 的列,如果要显示的自定义一个自增列,必须将给列设置为主键 primary_key=True

 2.3 自定义表的名称

用Django里面的models操作数据库

2.4 执行完上述接下来就是运行命令对表进行创建了

打开run manage.py task ,执行makemigrations 生成数据库变更文件

执行migrate命令,执行数据库变更文件

用Django里面的models操作数据库

如果需要对数据模型类做修改,要先执行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已存在,请检查后重新输入')
3.修改

我们已经通过上面的查询获得了某一条数据 返回的是对象,直接通过对象.属性就可以实现数据库的修改

最后对象.save()保存就可以了



4.删除

        通过查询到某一条数据后直接.delete()就可以

        例如:

                    MesModel.objects.get(id=1).delete()