zoukankan      html  css  js  c++  java
  • 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()  
        
        
    特点:
        批量删除
        
        
        
    
  • 相关阅读:
    项目实战之天天酷跑(三):缓冲加载游戏界面
    项目实战之天天酷跑(二):开始游戏界面
    项目实战之天天酷跑(一):登录界面
    DBeaver安装
    基于SpringBoot+Vue开发的前后端分离博客项目完整教学
    freemarker教程
    ftl 常用指令及语法详解
    FTL 入门
    IDEA右侧Maven消失解决方法
    nodejs和npm的关系
  • 原文地址:https://www.cnblogs.com/cheng825/p/11721992.html
Copyright © 2011-2022 走看看