增删改查

查:

前端实例:

 mounted() {
//获取所有数据
// var Base_url = 'http://paas.bktst.sh.sgcc.com.cn/t/files-check/';
this.$axios({
method:'get',
// url:Base_url+'checkitems'+'/',
url:'/checkitems/',
}).then(resp=>{
console.log(resp.data);
this.tableData = resp.data;
this.total = resp.data.length;
}).catch(resp=>{
console.log(resp);
});

后端代码实例:

class CheckItemsViewSet(viewsets.ViewSet):
'''
list:
获取检查项
'''
def list(self,request):
queryset = CheckItems.objects.all()
serializer = CheckItemsGetSerializer(queryset,many=True)
return Response(serializer.data)

增:

前端实例:

var data = {
'name': this.formAdd.name,
'desc': this.formAdd.desc,
'check_item_class':this.formAdd.check_item_class,
'order':this.formAdd.order, 'is_score':this.is_score,
'is_file':this.is_file,
'collect_methods':this.collect_methods,
'object_type':this.object_type, 'file_name':this.formAdd.file_name,
'collect_script':this.formAdd.collect_script,
'collect_result_score':this.formAdd.collect_result_score
};
this.$axios({
method: 'post',
// url:Base_url+'checkitems'+'/',
url:'/checkitems/',
headers: {'X-CSRFToken': this.getCookie('csrftoken')},
data: data,
}).then(resp => {
console.log(resp.data);
console.log(resp.status);
}).catch((resp) => {
console.log(resp.status);
});

后端代码实例:

class CheckItemsViewSet(viewsets.ViewSet):
'''
create:
增加检查项
'''
def create(self,request):
serializer = CheckItemsUpdateSerializer(data = request.data)
serializer.is_valid(raise_exception=True)
serializer.save()
return Response(serializer.data)

改:

前端实例:

formEdit:{
name:'',
desc:'',
collect_methods:'',
check_item_class:'',
order:'',
is_score:'',
is_file:'',
file_name:'',
object_type:'',
collect_script:'',
collect_result_score:'',
},
var id = this.formEdit.id;
var data = {
'id':this.formEdit.id,
'name':this.formEdit.name,
'desc':this.formEdit.desc,
'check_item_class':this.formEdit.check_item_class,
'order':this.formEdit.order, 'is_score':this.is_score,
'is_file':this.is_file,
'collect_methods':this.collect_methods,
'object_type':this.object_type, 'file_name':this.formEdit.file_name,
'collect_script':this.formEdit.collect_script,
'collect_result_score':this.formEdit.collect_result_score,
}; this.$axios({
method:'put',
// url:Base_url+'checkitems'+'/'+id+'/',
url:'/checkitems/'+id+'/',
data: data,
}).then(resp=>{
// 刷新父级页面
parent.location.reload();
console.log(resp.data);
console.log(resp.status);
}).catch(resp=>{
console.log(resp.status);
});

后端代码实例:

逻辑就是前端传id进来,然后后端后去到id,然后到数据库中查询
通过id然后找到数据,然后更改相应的字段
class CheckItemsViewSet(viewsets.ViewSet):
def update(self,request,pk=None):
obj = CheckItems.objects.get(id = pk) #先到数据库中获取数据,然后在把前端的数据复制给数据库相关字段
data = request.data # 获取前端数据
obj.name = data['name']
obj.desc = data['desc']
obj.check_item_class = data['check_item_class']
obj.order = data['order'] if data['is_score'] == '自动打分' or data['is_score'] == 1:#根据前端传的数据,然后保存到数据库中;choice保存一定要保存数字
obj.is_score = 1
else:
obj.is_score = 2 if data['is_file'] == '导出文件' or data['is_file'] == 1:
obj.is_file = 1
else:
obj.is_file = 2 if data['collect_methods'] == '数据库' or data['collect_methods'] ==1:
obj.collect_methods = 1
else:
obj.collect_methods = 2 if data['object_type'] == '中间件' or data['object_type'] == 1:
obj.object_type = 1
elif data['object_type'] == '数据库' or data['object_type'] == 2 :
obj.object_type = 2
else:
obj.object_type = 3 obj.file_name = data['file_name']
obj.collect_script = data['collect_script']
obj.collect_result_score = data['collect_result_score']
obj.save()
serializer = CheckItemsGetSerializer(obj)
return Response(serializer.data)

删:

前端代码:

formEdit:{
name:'',
desc:'',
collect_methods:'',
check_item_class:'',
order:'',
is_score:'',
is_file:'',
file_name:'',
object_type:'',
collect_script:'',
collect_result_score:'',
},
var id = this.formEdit.id;
this.axios({
method:'delete',
// url:Base_url+'checkitems'+'/'+id+'/',
url:'/checkitems/'+id+'/', }).then(resp=>{
console.log(resp.status)
}).catch(resp=>{
console.log(resp.status)
})

后端代码实例:

class CheckItemsViewSet(viewsets.ViewSet):
def destory(self,request,pk=None):
obj = CheckItems.objects.get(id = pk)
obj.delete()

作者:萌蛋酱
链接:https://www.jianshu.com/p/f7309f3cd831

axios和drf结合的增删改查的更多相关文章

  1. 基于DRF的图书增删改查练习

    功能演示 信息展示 添加功能 编辑功能 删除功能 DRF构建后台数据 本例的Model如下 from django.db import models class Publish(models.Mode ...

  2. 基于DRF的图书增删改查

    功能演示 信息展示 添加功能 编辑功能 删除功能 DRF构建后台数据 本例的Model如下 from django.db import models class Publish(models.Mode ...

  3. Django drf:序列化增删改查、局部与全局钩子源码流程、认证源码分析、执行流程

    一.序列化类的增.删.改.查 用drf的序列化组件   -定义一个类继承class BookSerializer(serializers.Serializer):   -写字段,如果不指定source ...

  4. VUE2.0增删改查附编辑添加model(弹框)组件共用

    Vue实战篇(增删改查附编辑添加model(弹框)组件共用) 前言 最近一直在学习Vue,发现一份crud不错的源码 预览链接 https://taylorchen709.github.io/vue- ...

  5. Django REST framework 五种增删改查方法

    Django-DRF-视图的演变   版本一(基于类视图APIView类) views.py: APIView是继承的Django View视图的. 1 from .serializers impor ...

  6. vue.js带复选框表单的增删改查

    近段时间由于公司项目要求,前端开始使用VUE框架进行开发,最近刚开始学习,做了一个表单的增删改查,和大家分享一下. 页面模型代码设计如下 <template> <div id=&qu ...

  7. 后盾网lavarel视频项目---lavarel使用模型进行增删改查操作

    后盾网lavarel视频项目---lavarel使用模型进行增删改查操作 一.总结 一句话总结: 使用模型操作常用方法 查一条:$model=Tag::find($id); 删一条:Tag::dest ...

  8. SpringBoot-Vue实现增删改查及分页小DEMO

    前言 主要通过后端 Spring Boot 技术和前端 Vue 技术来简单开发一个demo,实现增删改查.分页功能以及了解Springboot搭配vue完成前后端分离项目的开发流程. 开发栈 前端 开 ...

  9. vue.js+element ui Table+spring boot增删改查

    小白初学,不懂的还是太多了,找了好多资料才做出来的先记录一下 1.先用Spring boot创建一个包含了增删改查的项目 2.创建vue.js项目 3.安装Element UI (1)进入项目文件夹下 ...

随机推荐

  1. 国际化(i18n) 各国语言缩写

    internationalization (国际化)简称:i18n,因为在i和n之间还有18个字符,localization(本地化 ),简称L10n. 一般用语言_地区的形式表示一种语言,如:zh_ ...

  2. Andrew Ng机器学习 二: Logistic Regression

    一:逻辑回归(Logistic Regression) 背景:假设你是一所大学招生办的领导,你依据学生的成绩,给与他入学的资格.现在有这样一组以前的数据集ex2data1.txt,第一列表示第一次测验 ...

  3. python算法与数据结构-插入排序算法(34)

    一.插入排序的介绍 插入排序的工作方式非常像人们排序一手扑克牌一样.开始时,我们的左手为空并且桌子上的牌面朝下.然后,我们每次从桌子上拿走一张牌并将它插入左手中正确的位置.为了找到一张牌的正确位置,我 ...

  4. 《BUG创造队》作业9:【Beta】冲刺 Scrum meeting 3

    项目 内容 这个作业属于哪个课程 2016级软件工程 这个作业的要求在哪里 实验十三 团队作业9:Beta冲刺与团队项目验收 团队名称 BUG创造队 作业学习目标 (1)掌握软件黑盒测试技术:(2)学 ...

  5. 2019-2020-1 20199301《Linux内核原理与分析》第七周作业

    第六章 进程的描述和进程的创建 学习笔记 1.操作系统的三大管理功能: 进程管理 内存管理 文件系统 2.操作系统最核心的功能是进程管理. 3.为了管理进程,内核要描述进程的结构,也成为进程描述符,进 ...

  6. eclipse更改jdk版本(1.6》1.7 以此类推)

    电脑装了两个版本的JDK,在开发项目的时候默认使用的是高版本的,但是公司又要求用低版本的JDK来编译,肿么办???么事,小编这就来给你支招! eclipse 安装两个版本的JDK 1 打开eclips ...

  7. JSONObject例子

    说起JSON,大家就谈不上陌生了,因为对于数据传输语言,各位只认json,即使有XML语言,但是各位很少用吧.我也是,但是之前用过的json转换工具各种各样,我记忆中有过GSON(google).fa ...

  8. SecureCRT工具如何连接本地虚拟机

    1,1.打开虚拟机,查看当前虚拟机的IP地址,如下图 2.运行本地计算机安装的SecureCRT连接工具 3.在工具打开界面的窗口中选择快速连接按钮 4.在弹出的连接窗口中输入刚才查看的虚拟机的IP地 ...

  9. .net web api 返回的是xml

    var result = new HttpResponseMessage { Content = new StringContent(JsonConvert.SerializeObject(dto2) ...

  10. Linux中三种SCSI target的介绍之STGT

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/scaleqiao/article/deta ...