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()方法,并指明请求的方式.地址.数据类型,以及回调方法等.下面 ...
随机推荐
- udp_connect函数
#include <netdb.h> #include <stdlib.h> #include <unistd.h> #include <string.h&g ...
- TensorFlow从入门到理解(五):你的第一个循环神经网络RNN(回归例子)
运行代码: import tensorflow as tf import numpy as np import matplotlib.pyplot as plt BATCH_START = 0 TIM ...
- redis集群学习
转载: http://arganzheng.life/redis-cluster.html Redis3.0版本加入了cluster功能,解决了Redis单点无法横向扩展的问题. 分布式系统要解决的不 ...
- 【译】第十一篇 SQL Server安全审核
本篇文章是SQL Server安全系列的第十一篇,详细内容请参考原文. SQL Server审核SQL Server审核是指你可以在数据库或服务器实例监控事件.审核日志包含你选择捕获的事件的列表,在服 ...
- android矩阵详解
android矩阵:http://www.360doc.com/content/11/1215/11/7635_172396706.shtml
- mysql连接报java.math.BigInteger cannot be cast to java.lang.Long异常
使用hibernate出现以下错误 java.sql.SQLException: java.lang.ClassCastException: java.math.BigInteger cannot b ...
- eclipse快捷键调试总结 -转--快捷键大全
(1)Ctrl+M --切换窗口的大小(2)Ctrl+Q --跳到最后一次的编辑处(3)F2 ---重命名类名 工程名 --当鼠标放在一个标记处出现Tooltip时候按F2则把鼠标移开时To ...
- Android逆向基础----Dalvik字节码
参考此微博,更多详细内容可以到这里查看 http://blog.csdn.net/dd864140130/article/details/52076515 Dalvik字节码 1.寄存器位32位,64 ...
- Microsoft SQL - 查询与更新
查询与更新(Query & Update) 转义引号 SQL语句中字符串只能使用单引号,如果需要转义,可用单引号转义单引号. 查询(Inquire) 以下公式中的c指代列名. 规则 1.查询语 ...
- CSS 模块的侦测
CSS 的规格发展太快,新的模块层出不穷.不同浏览器的不同版本,对 CSS 模块的支持情况都不一样.有时候,需要知道当前浏览器是否支持某个模块,这就叫做“CSS模块的侦测”. 一个比较普遍适用的方法是 ...