两次被同一块石头绊倒简直不可原谅!第一次写django程序的时候,就因为ajax post请求折腾了整整一天,时隔两个多月昨天又被虐一整晚。叔可忍婶儿也不能忍了!!!重要的事情写下来,为以后轻松碾压post请求做准备。

django post请求403:

  当采用客户端象django的服务器提交post请求时。会得到403,权限异常。因为django针对提交的请教,有校验。所以会如此。

  处理过程

  按提示及百度结果修改setting.py,在MIDDLEWARE_CLASSES增加django.middleware.csrf.CsrfResponseMiddleware。结果依然报错。
 
  继续修改setting.py,注释掉django.middleware.csrf.CsrfViewMiddleware及django.middleware.csrf.CsrfResponseMiddleware后,结果依然报错。
 
  继续百度发现各种说法都有,有说在模板文件里加{% csrf_token %}就可以解决的,也有说在setting里加了django.middleware.csrf.CsrfResponseMiddleware就可以解决的,我最后是这样解决的:
  导入模块:from django.views.decorators.csrf import csrf_exempt

  在接收post请求的函数前面添加修饰器:@csrf_exempt

django post请求urls.py文件的配置:

  前一直用get请求,我是这样配url的url('^addIp/', view.addIpInfo),后来换了POST请求,发现根本接收不到数据,查来查去都查不到原因,后来仔细比对了当时的代码才发现应该是这么配的url('^addIp$', view.addIpInfo),从网上查看了资料和解释,才想起之前看过的,这里的url匹配是使用正则表达式匹配的,如果不写$,默认只会匹配到addIp,但是其实这后面还有post请求的数据呢。当然匹配不到啦,永远报500~~~

完整的post用例:

  js-ajax:  

    $.ajax({
                 type: "POST",
                 url: "/addIp",
                 data: postData,
                 success: function(data){
                       console.info(data);
                 },
                 error: function(XMLHttpRequest, textStatus, errorThrown){
                     console.info(XMLHttpRequest,textStatus,errorThrown)
                      this;
                 },
                 complete: function(XMLHttpRequest, textStatus){
                     console.info("complete");
                     this;
                 },
            });

  urls.py: 

    url('^addIp$', view.addIpInfo)

  python——addIpInfo方法:

    from django.http import HttpResponse
    from django.views.decorators.csrf import csrf_exempt
    @csrf_exempt
    def addIpInfo(request):
        additem = request.POST
        print additem
        return HttpResponse('ok')

参考资料:

    django中“url映射规则”和“服务端响应顺序”:http://www.cnblogs.com/edisonfeng/p/3755136.html

python——django的post请求的更多相关文章

  1. python Django教程 之 安装、基本命令、视图与网站

    python  Django教程  之 安装.基本命令.视图与网站 一.简介 Django 中提供了开发网站经常用到的模块,常见的代码都为你写好了,通过减少重复的代码,Django 使你能够专注于 w ...

  2. python django 多级业务树形结构规划及页面渲染

    概述: 在项目中,父级到子级结构并不少见,如果仅仅的两层树形结构,我们可以使用数据库的外键设计轻松做到,子级业务表设计一字段外键到父级业务表,这样子到父.父到子的查询都非常简单. 但是往往父子结构会有 ...

  3. Python+Django+SAE系列教程17-----authauth (认证与授权)系统1

    通过session,我们能够在多次浏览器请求中保持数据,接下来的部分就是用session来处理用户登录了. 当然,不能仅凭用户的一面之词,我们就相信,所以我们须要认证. 当然了,Django 也提供了 ...

  4. python CSRF跨站请求伪造

    python CSRF跨站请求伪造 <!DOCTYPE html> <html lang="en"> <head> <meta chars ...

  5. python Django知识点总结

    python Django知识点总结 一.Django创建项目: CMD 终端:Django_admin startproject sitename(文件名) 其他常用命令: 其他常用命令: 通过类创 ...

  6. python/ Django之中间件

    python/ Django之中间件 一.中间件 中间件共分为: (1)process_request(self,request) (2)process_view(self, request, cal ...

  7. python Django之Form组件

    python Django之Form组件 Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 小试 ...

  8. python Django之文件上传

    python Django之文件上传 使用Django框架进行文件上传共分为俩种方式 一.方式一 通过form表单进行文件上传 #=================================== ...

  9. python Django之Ajax

    python Django之Ajax AJAX,Asynchronous JavaScript and XML (异步的JavaScript和XML),一种创建交互式网页应用的网页开发技术方案. 异步 ...

随机推荐

  1. http错误码大全?

    响应码由三位十进制数字组成,它们出现在由HTTP服务器发送的响应的第一行.响应码分五种类型,由它们的第一位数字表示:1.1xx:信息,请求收到,继续处理2.2xx:成功,行为被成功地接受.理解和采纳3 ...

  2. 仿网易新闻 ViewPager 实现图片自动轮播

    新闻 App 首页最上方一般会循环播放热点图片,如下图所示. 本文主要介绍了利用 ViewPager 实现轮播图片,图片下方加上小圆点指示器标记当前位置,并利用 Timer+Handler 实现了自动 ...

  3. ScrollView

    在程序设计中,有时我们需要实现自动滚屏或根据选择直接滚动到指定的位置的功能.这里用到的主要组件就是滚动视图(ScrollView). ---------- 那么使用ScrollView如何实现布局自动 ...

  4. MD5 Checksums for R12.1.1 Rapid Install Media (文档 ID 802195.1)

    Oracle EBusiness Suite R12.1.x Rapid Installmd5 Checksums November 2011 Section      1: Overview Sec ...

  5. kafka0.9.0及0.10.0配置属性

    问题导读1.borker包含哪些属性?2.Producer包含哪些属性?3.Consumer如何配置?borker(0.9.0及0.10.0)配置Kafka日志本身是由多个日志段组成(log segm ...

  6. activity的四种加载模式

    在android里,有4种activity的启动模式,分别为: standard, singleTop, singleTask和singleInstance, 其中standard和singleTop ...

  7. 模块(configparser+shutil+logging)

    一.configparser模块 1.模块介绍 configparser用于处理特定格式的文件,其本质上是利用open来操作文件. *注:(这里解释一下特定格式的文件) a.有section和opti ...

  8. 关于AngularJs,数据绑定与自定义验证

    最近开始着手学起了Angular,抱着好奇的心情开始研究了起来.忽然发现angular可以巧妙而方便的进行数据的绑定验证啊什么的.(当然,我只是刚开始学,所有可能有更强大的功能,只是我还没有看到) 那 ...

  9. Uva 242 邮票和信封

    题目链接:https://vjudge.net/contest/146179#problem/D 题意: 信封上最多贴S张邮票.有N个邮票集合,每个集合有不同的面值.问哪个集合的最大连续邮资最大,输出 ...

  10. WPF 中 InitializeComponent 不存在解决方案

    部门给了一个WPF应用,但是之前没学过,所以再用vs2015创建测试程序的时候,竟然报了错,一创建项目就报错的程序还真不多.大概就是 InitializeComponent不存在吧.所以在网上看了很多 ...