47)django-以put和delete方式提交数据
一:说明
同一个页面以ajax实现增删改查,对应方法post,delete,put,get,
其中delete和put方式提交的数据在request.body中需要序列化处理。
二:示例
#模板提交数据
function host_group_modify(thr) {
//更新数据 $.ajax({
url: "{% url "hostgroup" %}",
type: "put",
headers: {"X-CSRFtoken": csrftoken},
data: $("#form_host_group_edit").serialize(),
dataType: "json",
success: function (thr) {
if (thr.status) {
location.reload();
} else {
//第二次转换JSON
var errors = JSON.parse(thr.errors);
//显示alert
$(".alert").removeClass("hide");
var text = ""
for (i in errors) {
text += errors[i][0].message + ";";
}
$(".show_error").text(text)
}
}
}) #views中处理 def put(self,request):
"""修改主机组"""
data=request_body_serialze(request) hostgroup_obj=models.HostGroups.objects.filter(id=data.get("id")).first()
hostgroup_form_obj=forms.HostGroupFrom(data,initial=hostgroup_obj)
if hostgroup_form_obj.is_valid():
models.HostGroups.objects.filter(id=data.get("id")).update(**data)
else:
self.ret["status"] = False
self.ret["errors"] = hostgroup_form_obj.errors.as_json() return HttpResponse(json.dumps(self.ret)) #quertdict转成普通字典
# _*_ coding:utf-8 _*_
__author__ = "lixiang"
from django.http.request import QueryDict
def request_body_serialze(request):
#对request.body做QuertDict编码转换处理
#如果不做数据处理:格式b'id=49&name=%E4%B8%AD&name_cn=&comment='
#页面中提交的中文“中”,变成%E4%B8%AD
querydict=QueryDict(request.body.decode("utf-8"),encoding="utf-8")
response_dict={}
try:
for key,val in querydict.items(): response_dict[key]=val
except:
pass
return response_dict #处理结果 #处理前
<QueryDict: {'id': [''], 'name': ['中天'], 'name_cn': [''], 'comment': ['']}>
#处理后
{'id': '', 'name': '中天', 'name_cn': '', 'comment': ''}
47)django-以put和delete方式提交数据的更多相关文章
- Android 采用post方式提交数据到服务器
接着上篇<Android 采用get方式提交数据到服务器>,本文来实现采用post方式提交数据到服务器 首先对比一下get方式和post方式: 修改布局: <LinearLayout ...
- Android(java)学习笔记213:开源框架post和get方式提交数据(qq登录案例)
1.前面提到Http的get/post方式 . HttpClient方式,实际工作的时候不常用到,因为这些方式编写代码是很麻烦的 2.Android应用会经常使用http协议进行传输,网上会有很完善 ...
- Android 使用Post方式提交数据(登录)
在Android中,提供了标准Java接口HttpURLConnection和Apache接口HttpClient,为客户端HTTP编程提供了丰富的支持. 在HTTP通信中使用最多的就是GET和POS ...
- Android 使用Post方式提交数据
在Android中,提供了标准Java接口HttpURLConnection和Apache接口HttpClient,为客户端HTTP编程提供了丰富的支持. 在HTTP通信中使用最多的就是GET和POS ...
- 苹果微信浏览器不能post方式提交数据问题
form表单中采用post方式提交数据时,在苹果的微信浏览器中无法传递,安卓的可以 如图: 在controller中获取该数据为 null 将表单的提交方式修改为get就能够获取到 现在采用Ajax方 ...
- Android(java)学习笔记156:开源框架post和get方式提交数据(qq登录案例)
1. 前面提到Http的get/post方式 . HttpClient方式,实际工作的时候不常用到,因为这些方式编写代码是很麻烦的 2. Android应用会经常使用http协议进行传输,网上会有很 ...
- postman 中post方式提交数据
post方式提交数据时,把参数填写在body中而不是pOST下面的哪一行
- Android 采用get方式提交数据到服务器
首先搭建模拟web 服务器,新建动态web项目,servlet代码如下: package com.wuyudong.web; import java.io.IOException; import ja ...
- JQuery以JSON方式提交数据到服务端
JQuery将Ajax数据请求进行了封装,从而使得该操作实现起来容易许多.以往我们要写很多的代码来实现该功能,现在只需要调用$.ajax()方法,并指明请求的方式.地址.数据类型,以及回调方法等.下面 ...
随机推荐
- vue插件 使用use注册Vue全局组件和全局指令
插件一般会注册到全局使用 官方编辑插件介绍:https://vuefe.cn/v2/guide/plugins.html 全局组件: .首先建一个自定义组件的文件夹,比如叫loading,里面有一个i ...
- Android资源重命名
Android资源比如图片重命名后,Resource里看到的还是之前的名字,可以关掉AndroidStudio,从新打开就正常了
- 五、文件IO——dup 函数
5.1 dup 函数---复制文件描述符 5.1.1 简单cat实现及输入输出重定向 io.c #include <sys/types.h> #include <sys/stat.h ...
- QIM量化
基于量化思想的水印嵌入模型的主要目的是为了实现盲检测.其主要思想是根据水印信息的不同将原始载体数据量化到不同的量化区间,而检测时根据所属的量化区间来识别水印信息.常见的两种量化方式是QIM和SCS方法 ...
- VS中ipch文件夹和sdf文件的处理方式
ipch文件夹和sdf是VS产生的预编译头文件和智能提示信息,对编码没有影响,可存放在固定的位置,定期进行清理
- 第26月第18天 mybatis_spring_mvc
1. applicationContext.xml 配置文件里最主要的配置: <?xml version="1.0" encoding="utf-8"? ...
- 第20月第14天 objc_getAssociatedObject _cmd
1. - (CustomNavigationControllerDelegate *)customDelegate { return objc_getAssociatedObject(self, _c ...
- MGR架构~ 整体性能架构的调优
一 简介:MGR集群架构的调优二 过程:本文将从各个角度来具体阐述下三 硬件 1 硬件选择相同配置的服务器,磁盘,内存,cpu性能越高越好四 网络 1 0丢包和最好万兆网卡五 MGR本身 ...
- 解决安装YouCompleteMe与Vim版本不兼容问题
用vim 7.4.4版本装YouCompleMe的时候提示这样的信息: YouCompleteMe unavailable: requires Vim 7.4.1578+.明明版本比它要求的还高,居然 ...
- 原子类型的使用&Unsafe&CAS
在项目中也经常可以见到原子类型(AtomicXXX)的使用,而且AtomicXXX常用来代替基本类型或者基本类型的包装类型,因为其可以在不加同步锁的情况下保证线程安全(只对于原子操作). 下面以Ato ...