• 前后端分离后对数据库资源的增查改删处理


    1,列出数据库资源

    后端返回的数据格式如下

    {
    "ret": 0,
    "retlist": [
        {
            "address": "江苏省常州武进市白云街44号",
            "id": 1,
            "name": "武进市 袁腾飞",
            "phonenumber": "13886666666"
        },
        
        {
            "address": "北京海淀区",
            "id": 4,
            "name": "北京海淀区代理 蔡国庆",
            "phonenumber": "13990123456"
        }
    ]              
    

    }

    代码示例

    def listcustomers(request):
    # 返回一个 QuerySet 对象 ,包含所有的表记录
    qs = Customer.objects.values()
    
    # 将 QuerySet 对象 转化为 list 类型
    # 否则不能 被 转化为 JSON 字符串
    retlist = list(qs)
    
    return JsonResponse({'ret': 0, 'retlist': retlist})
    

    在文件开头先导入数据库定义

    # 导入 Customer 
    from common.models import Customer
    

    2,添加数据

    根据接口文档,前端提供的客户数据格式如下

    {
      "action":"add_customer",
      "data":{
        "name":"武汉市桥西医院",
        "phonenumber":"13345679934",
        "address":"武汉市桥西医院北路"
       }
    }
    

    完整代码

    def addcustomer(request):
    
    info    = request.params['data']
    
    # 从请求消息中 获取要添加客户的信息
    # 并且插入到数据库中
    # 返回值 就是对应插入记录的对象 
    record = Customer.objects.create(name=info['name'] ,
                            phonenumber=info['phonenumber'] ,
                            address=info['address'])
    
    
    return JsonResponse({'ret': 0, 'id':record.id})
    

    Customer.objects.create 方法就可以添加一条Customer表里面的记录。

    修改数据

    前端提供的数据格式如下

    {
      "action":"modify_customer",
      "id": 6,
      "newdata":{
        "name":"武汉市桥北医院",
        "phonenumber":"13345678888",
        "address":"武汉市桥北医院北路"
      }
    }
    

    完整代码

    def modifycustomer(request):
    
    # 从请求消息中 获取修改客户的信息
    # 找到该客户,并且进行修改操作
    
    customerid = request.params['id']
    newdata    = request.params['newdata']
    
    try:
        # 根据 id 从数据库中找到相应的客户记录
        customer = Customer.objects.get(id=customerid)
    except Customer.DoesNotExist:
        return  {
                'ret': 1,
                'msg': f'id 为`{customerid}`的客户不存在'
        }
    
    
    if 'name' in  newdata:
        customer.name = newdata['name']
    if 'phonenumber' in  newdata:
        customer.phonenumber = newdata['phonenumber']
    if 'address' in  newdata:
        customer.address = newdata['address']
    
    # 注意,一定要执行save才能将修改信息保存到数据库
    customer.save()
    
    return JsonResponse({'ret': 0})
    
    • customer = Customer.objects.get(id=customerid),从数据库中查找id=customerid的记录,并返回给customer
    • if 'name' in newdata:customer.name = newdata['name'] 修改数据
    • customer.save()保存到数据库

    删除数据

    数据格式如下

    {
    "action":"del_customer",
    "id": 6
    }
    

    用如下的函数来处理

    def deletecustomer(request):
    
    customerid = request.params['id']
    
    try:
        # 根据 id 从数据库中找到相应的客户记录
        customer = Customer.objects.get(id=customerid)
    except Customer.DoesNotExist:
        return  {
                'ret': 1,
                'msg': f'id 为`{customerid}`的客户不存在'
        }
    
    # delete 方法就将该记录从数据库中删除了
    customer.delete()
    
    return JsonResponse({'ret': 0})
  • 相关阅读:
    list和set的区别
    day13
    11期
    接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法?
    Object类?
    swith的用法和注意事项?
    Ioc和DI的区别?
    多态的好处?
    抽象和接口的区别?
    内部类,匿名内部类?
  • 原文地址:https://www.cnblogs.com/amityblue/p/15302222.html
Copyright © 2020-2023  润新知