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

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  时倾!  阅读(292)  评论(0)    收藏  举报