django中使用POST方法获取POST数据

在django中获取post数据,首先要规定post发送的数据类型是什么。

1.获取POST中表单键值数据

如果要在django的POST方法中获取表单数据,则在客户端使用JavaScript发送POST数据前,定义post请求头中的请求数据类型:

xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");

在django的views.py相关方法中,需要通过request.POST获取表单的键值数据,并且可以通过reques.body获取整个表单数据的字符串内容

if(request.method == 'POST'):
    print("the POST method")
    concat = request.POST
    postBody = request.body
    print(concat)
    print(type(postBody))
    print(postBody)

相关日志:

the POST method
<QueryDict: {u'username': [u'abc'], u'password': [u'123']}>
<type 'str'>
username=abc&password=123

2.获取POST中json格式的数据

如果要在django的POST方法中获取json格式的数据,则需要在post请求头中设置请求数据类型:

xmlhttp.setRequestHeader("Content-type","application/json");

在django的views.py中导入python的json模块(import json),然后在方法中使用request.body获取json字符串形式的内容,使用json.loads()加载数据。

if(request.method == 'POST'):
    print("the POST method")
    concat = request.POST
    postBody = request.body
    print(concat)
    print(type(postBody))
    print(postBody)
    json_result = json.loads(postBody)
    print(json_result)

相关日志:

the POST method
<QueryDict: {}>
<type 'str'>
{"sdf":23}
{u'sdf': 23}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Django框架如何使用ajax的post方法

    Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的软件设计模式,即模型M,视图V和控制器C.它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件.并于2005年7月在BSD许可证下发布.这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的. 今天在尝试调用jQuery的ajax时发现一个问题,就是使用GET方法服务器可以正常返回,但是使用POST方法却不行.后来再测试表单方式的POST的方法也

  • Django框架实现的普通登录案例【使用POST方法】

    本文实例讲述了Django框架实现的普通登录.分享给大家供大家参考,具体如下: 1.显示登录页面 a.设计url,通过浏览器访问http://127.0.0.1:8000//login的时候现实登录页面 b.设计url对应的视图函数 c.编写模板文件login.html 2.登录校验功能 校验数据库中有没有这个用户,这里用模拟的伪校验 新建login.html 在templates文件夹下的booktest文件夹下新建 <!DOCTYPE html> <html lang="e

  • django中使用POST方法获取POST数据

    在django中获取post数据,首先要规定post发送的数据类型是什么. 1.获取POST中表单键值数据 如果要在django的POST方法中获取表单数据,则在客户端使用JavaScript发送POST数据前,定义post请求头中的请求数据类型: xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 在django的views.py相关方法中,需要通过reques

  • Django中使用jquery的ajax进行数据交互的实例代码

    jquery框架中提供了$.ajax.$.get.$.post方法,用于进行异步交互,由于Django中默认使用CSRF约束,推荐使用$.get 示例:实现省市区的选择 最终实现效果如图: 将jquery文件拷贝到static/js/目录下 打开booktest/views.py文件,定义视图area1,用于显示下拉列表 #提供显示下拉列表的控件,供用户操作 def area1(request): return render(request,'booktest/area1.html') 打开bo

  • jQuery通过ajax方法获取json数据不执行success的原因及解决方法

    1.jquery通过ajax方法获取json数据不执行success回调 问题描述:jquery通过ajax方法获取json数据不执行success回调方法 问题原因:json格式存在问题或不符合标准写法,导致总是执行error回调方法 解决方案:使json格式务必符合下述3个标准写法: 1)键名称:用双引号括起: 2)字符串:用双引号括起: 3)数字,布尔值不需要使用双引号括起 : 注意:一定是双括号! 2.jQuery中ajax使用json数据类型总是跳过success执行error语句 执

  • jQuery使用getJSON方法获取json数据完整示例

    本文实例讲述了jQuery使用getJSON方法获取json数据.分享给大家供大家参考,具体如下: demo.js: [ { "name":"吴者然", "sex":"男", "email":"demo1@123.com" }, { "name":"吴中者", "sex":"男", "email&q

  • 异步任务队列Celery在Django中的使用方法

    前段时间在Django Web平台开发中,碰到一些请求执行的任务时间较长(几分钟),为了加快用户的响应时间,因此决定采用异步任务的方式在后台执行这些任务.在同事的指引下接触了Celery这个异步任务队列框架,鉴于网上关于Celery和Django结合的文档较少,大部分也只是粗粗介绍了大概的流程,在实践过程中还是遇到了不少坑,希望记录下来帮助有需要的朋友. 一.Django中的异步请求 Django Web中从一个http请求发起,到获得响应返回html页面的流程大致如下:http请求发起 --

  • 在django中使用post方法时,需要增加csrftoken的例子

    从百度查到在django中,使用post方法时,需要先生成随机码,以防止CSRF(Cross-site request forgery)跨站请求伪造,并稍加修改: 注:这是一个js文件,需要引入到html模板中:<script src="/static/javascript/post_need_csrftoken.js"></script> 这样做比使用{% csrf_token %}方便 $(function () { $.ajaxSetup({ header

  • 在django中实现choices字段获取对应字段值

    我就废话不多说了,大家还是直接看代码吧~ class Area(models.Model): Area_Level = ( (0, u'全国'), (1, u'省.直辖市'), (2, u'市.直辖市区'), (3, u'区.县等'), ) areaname = models.CharField(max_length=30,unique=True, verbose_name='区域名称') code = models.CharField(max_length=20,blank=True, def

  • Django中多种重定向方法使用详解

    前言 本文使用了Django1.8.2 使用场景,例如在表单一中提交数据后,需要返回到另一个指定的页面即可使用重定向方法 一. 使用HttpResponseRedirect fuhao The first argument to the constructor is required – the path to redirect to. This can be a fully qualified URL or an absolute path with no domain."参数可以是绝对路径跟

  • 详解WordPress中用于更新和获取用户选项数据的PHP函数

    update_user_option()函数 update_user_option()函数作用利用全局博客权限更新用户选项. 用户选项类似于用户元数据,唯一的不同之处在于用户选项支持全局博客选项.如果'global'参数为False(默认情况下),update_user_option会预先将WordPress表前缀改成选项名称. [函数使用] <?php update_user_option( $user_id, $option_name, $newvalue, $global ) ?> [函

  • jQuery实现使用sort方法对json数据排序的方法

    本文实例讲述了jQuery实现使用sort方法对json数据排序的方法.分享给大家供大家参考,具体如下: 如何对后台返回过来的json数据按照数据中的某一项进行排序呢. 首先看一下排序前的json数据: { "result":[ { "cid":1, "name":"aaa", "price":1000 },{ "cid":2, "name":"bbb&qu

随机推荐