Django_基本增删改查

一、前提概述

通过项目驱动来学习,以图书管理系统为例,编写接口来实现对图书信息的查询,图书的添加,图书的修改,图书的删除等功能。(不包含多重信息的校验,只为了熟悉增删改查接口的实现流程)

二、模型展示

class Books(models.Model):
    id = models.CharField(primary_key=True, max_length=20, verbose_name='图书编号')
    name = models.CharField(max_length=50, verbose_name='书名')
    status = models.BooleanField(verbose_name='是否出借', default=False,blank=True)
    class Meta:
        db_table = 'book'
        verbose_name = '图书表'
    def __str__(self):
        return self.name

三、查询接口

    def get(self,request):
        #进行账号验证,只用通过登录,才可以实现查询功能
        if not request.user.is_authenticated:
            return JsonResponse({'code':2001,'message':'账号认证失败'})
        #获取所有图书对象
        bs = Books.objects.all()
        data = []
        #以字典的形式封装每一条图书信息并进行存储
        for b in bs:
            dic = {'id':b.id,'name':b.name,'status':b.status}
            data.append(dic)
        return JsonResponse({'code':200,'message':'获取成功','data':data})

四、添加接口

    #添加一条图书信息
    def post(self,request):
        #进行账号验证,只用通过登录,才可以实现查询功能
        if not request.user.is_authenticated:
            return JsonResponse({'code':2001,'message':'账号认证失败'})
        
        #获取所要添加图书的信息
        params = request.POST if len(request.POST) else json.loads(request.body.decode())
        id = params.get('id')
        name = params.get('name')
        
        #进行信息为空验证
        if not(id and name):
            return JsonResponse({'code': 2002, 'message': '信息不能为空值'})

        if not isinstance(id,str):
            return JsonResponse({'code':2003,'message':'信息需为字符串形式'})
        
        if not isinstance(name,str):
            return JsonResponse({'code':2003,'message':'信息需为字符串形式'})
        
        try:
            Books.objects.create(id=id,name=name)
        except Exception as e:
            return JsonResponse({'code':2004,'message':'书籍已存在'})
        else:
            return JsonResponse({'code':200,'message':'成功'})

五、修改接口

    #修改一条图书信息
    def put(self,request):
        #进行账号验证,只用通过登录,才可以实现查询功能
        if not request.user.is_authenticated:
            return JsonResponse({'code':2001,'message':'账号认证失败'})

        #获取修改信息
        params = request.POST if len(request.POST) else json.loads(request.body.decode())
        id = params.get('id')
        name = params.get('name')
        status = params.get('status')

        try:
            book = Books.objects.get(id=id)
            
        except Exception as e:
            return JsonResponse({'code':2005,'message':'图书不存在'})
        else:
            book.name = name
            book.status = status
            book.save()
            return JsonResponse({'code':200,'message':'成功'})

六、删除接口

    #删除一条信息
    def delete(self,request):
        #进行账号验证,只用通过登录,才可以实现查询功能
        if not request.user.is_authenticated:
            return JsonResponse({'code':2001,'message':'账号认证失败'})

        params = request.POST if len(request.POST) else json.loads(request.body.decode())

        id = params.id
        try:
            book = Books.objects.get(id=id)
        except Exception as e:
            return JsonResponse({'code':2005,'message':'图书不存在'})
        else:
            book.delete()
            return JsonResponse({'code':200,'message':'成功'})   

相关推荐

  1. Django_基本增删

    2024-02-05 19:16:01       31 阅读
  2. Mybatis增删基础

    2024-02-05 19:16:01       34 阅读
  3. sql server 增删基本用法)

    2024-02-05 19:16:01       39 阅读
  4. MySQL 表的增删(基础)

    2024-02-05 19:16:01       31 阅读
  5. 【MySQL】表的增删基础

    2024-02-05 19:16:01       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-05 19:16:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-05 19:16:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-05 19:16:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-05 19:16:01       20 阅读

热门阅读

  1. C语言——教师信息管理系统

    2024-02-05 19:16:01       31 阅读
  2. 在(龙芯 3A6000)loongnix下编译syncthing

    2024-02-05 19:16:01       39 阅读
  3. 01环境准备

    2024-02-05 19:16:01       38 阅读
  4. C# 算法

    2024-02-05 19:16:01       30 阅读
  5. 11、SystemInit函数解读

    2024-02-05 19:16:01       32 阅读
  6. openssl3.2 - 官方demo学习 - pkcs12 - pkread.c

    2024-02-05 19:16:01       37 阅读
  7. 鸿蒙系统对应安卓版本

    2024-02-05 19:16:01       35 阅读
  8. 二级C语言笔试1

    2024-02-05 19:16:01       23 阅读