django数据的增删改查等基本操作

django数据基本操作及各个模块介绍

1.数据操作

表字段的增删

增加字段

​ 在models.py文件中新增字段后要选择两种赋值方式

​ 1.直接提供默认值 default = 'aaa'

​ 2.设置修改字段可以为空 null = True

修改或删除字段

​ 修改就直接在原来的字段上进行修改,删除就直接把要删除的字段注释或者直接删除,然后执行数据迁移命令,

​ 注意:不要轻易的注释models.py中任何跟数据库相关的代码

数据的增删该查

首先要在views.py中导入 models文件

数据的查询
1.get()

使用时要导入模块
from django.shortcuts import render,redirect,HttpResponse
from app01 import models

语法:
	model.表名.objects.get('字段名'=值)
    
特点:
    1.条件存在的情况下获得的是一个可以看作成列表的数据,列表里面放的才是我们要的数据对象
    2.条件不存在的情况下,会直接报错,所以该方法不常用.

2.filter()


语法:
    res = models.表名.objects.filter(username=username)  # select * from userinfo where username='jason' and password=123;
    
    
    
特点:
    1.当查询条件不存在的时候  不会报错而是返回一个空
    2.当条件存在的情况下 无论数据有几条返回的都是列表套对象的数据格式
    3.filter可以当多个查询条件 并且是and关系
    4.你可以将filter查询出来的结果当做列表去对待 支持正数的索引取值和切片 不支持负数,使用first方法取值.
        # user_obj = res[0]
        # user_obj = res[0:3]
        # user_obj = res[-1]  
        user_obj = res.first()  # 取queryset第一个元素
        
3.all()
   获取用户表中的所有的数据,结果类似于列表套数据对象 里面是当前表的所有数据对象
    
    user_queryset = models.Userinfo.objects.all()  
    # print(user_queryset.query)  # 只有queryset对象才能够点query查询内部所对应的sql语句
    # print(user_queryset)
    # 将数据传递给前端页面展示给用户看
数据的增加
1.create()


语法:
    
    user_obj = models.Userinfo.objects.create(username=username,password=password)
    # insert into userinfo(username,password) values('admin','666');
    
    # 直接将用户名和密码写入数据库
    # create方法会有一个返回值  返回值就是当前被创建的数据对象
    
    
特点:
    
    1.括号内些关键字参数的形式 创建数据
    2.该方法会有一个返回值 返回值就是当前对象本身
    
    
2.利用对象点方法的方式
    user_obj = User(username='jason')
    user_obj.save()  # 将当前对象保存到数据库中
    
    
数据的更改
1.update()


语法:    
    
    models.Userinfo.objects.filter(pk=edit_id).update(username=username,password=password)  
    
    
特点:
    
    如果找到多条数据会批量更新
    

2. 获取当前数据对象 然后利用对象点属性的方式 先修改数据  然后调用对象方法保存


        # 不推荐你使用第二种方式  效率低   挨个重新写入一遍
       edit_obj = models.Userinfo.objects.filter(pk=edit_id).first()  # pk能够自动帮你查询出当前表的主键字段名
       edit_obj.username = username
       edit_obj.password = password
       edit_obj.save()
        
        """update方法会将filter查询出来的queryset对象中所有的数据对象全部更新"""
        
        
        
数据的删除


delete()


语法:
    # 获取想要删除的数据id 直接删除
    delete_id = request.GET.get('delete_id')
    models.Userinfo.objects.filter(pk=delete_id).delete()  
    
    
特点:
    批量删除
    
    
    
posted @ 2019-10-22 19:37  cheng825  阅读(545)  评论(0编辑  收藏  举报