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

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})
posted @ 2021-09-16 20:43  时倾!  阅读(253)  评论(0编辑  收藏  举报