Django中POST请求数据的两种获取方式:表单与JSON

Ada
Ada
发布时间:2026-10-14 | 4人浏览过
原创

本文详解Django中处理POST请求的两种常见场景:表单键值数据与JSON格式数据。通过设置不同的Content-Type请求头,分别利用request.POST获取表单字段,或通过request.body结合json模块解析JSON字符串。文章包含具体的JavaScript发送代码与Django视图层处理逻辑,帮助开发者准确获取后端接收到的数据。

Django POST数据获取概述

在Django框架中处理POST请求时,首要步骤是明确客户端发送的数据类型,这将决定后端如何正确解析接收到的内容。

获取表单键值数据

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

若需在Django中获取标准的表单提交数据,客户端在发送POST请求前,必须通过JavaScript设置请求头中的Content-Type类型。


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

在Django的views.py相关视图函数中,应通过request.POST对象提取表单的键值对数据;同时,可通过request.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

获取JSON格式数据

2. 获取POST请求中的JSON格式数据

若需处理JSON格式的数据,客户端在POST请求头中必须将Content-Type设置为application/json。


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

在Django的views.py文件中,需导入Python内置的json模块(import json)。在视图方法中,先通过request.body获取JSON格式的字符串内容,随后使用json.loads()函数将该字符串解析为Python字典对象。


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}

以上内容涵盖了Django中POST数据获取的核心方法,希望能为您的开发工作提供参考。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表