Django:从 QueryDict 读取 JSON 对象数组

2024-04-28

如何通过 JS 的 AJAX 调用传递复合 JSON 结构,并在服务器端将其读取为 python 中的“非常相似”的数据结构?

我知道可以使用 json 格式(simplejson 等),但我不知何故觉得 QueryDict 本身在我的情况下格式错误或重新格式化?

Example:

当通过 AJAX 将 JSON 对象数组 [{"id": 1},{"id": 2},{"id": 3}] 传递到 Django 视图时,QueryDict 的格式如下:

POST:<QueryDict: {u'json_data[0][id]': [u'1'], u'type': [u'clone'], 
u'csrfmiddlewaretoken': [u'69bb3c434ced31ab301ede04bf491ec0'], 
u'json_data[1][id]': [u'2'], u'json_data[2][id]': [u'3']}>

我如何迭代 json_data?

我想得到这样的东西:

POST:<QueryDict: {u'json_data': [{u'id': [u'1']}, {u'id': [u'2']}, {u'id': [u'3']}]},
u'csrfmiddlewaretoken': [u'69bb3c434ced31ab301ede04bf491ec0'], u'type': [u'clone']>

这样我就可以将 QueryDict 作为字典访问,并以列表形式检索 json_data 并按特定顺序处理它:也许只是按顺序列表顺序迭代它们。 就像是:

ret = request.POST
for item in ret['json_data']:
    process(item['id'])

事实上,进入 process() 的值可以是另一个键值对字典,而不仅仅是一个数字(1,2,3 等)

JavaScript:

var test = [{"id": 1},{"id": 2},{"id": 3}];
$.post(
    "/insert_tc",
    {
      json_data: test,
      "type": 'clone',
      "csrfmiddlewaretoken": $csrf_token
    },  
    function(json) {
        //CALLBACK
    },
    "json"
);  

视图.py:

def insert_tc(request):
    if request.method == 'POST':       
    ret = request.POST
    type = ret['type']
    list = ret.getlist(ret)

但列表返回空[]

我尝试了 simplejson 转储、加载、项目、获取方法,但没有一个有帮助。

我什至尝试过 jQuery.param( obj, true ),但这不是我想要的(尽管有点接近)。

是否有不同/更好的方法通过 AJAX 来回传递复合数据结构 Django JS?


您应该使用 JSON.stringify() 对 JSON 进行字符串化。这会将 JSON 对象转换为字符串格式,以便在另一端可以正确解析。另一方面,您需要使用 json.loads() 来“取消字符串化”对象。

javascript:

var test = [{"id": 1},{"id": 2},{"id": 3}];
$.post(
    "/insert_tc",
    {
      json_data: JSON.stringify(test),
      "type": 'clone',
      "csrfmiddlewaretoken": $csrf_token
    },  
    function(json) {
        //CALLBACK
    },
    "json"
);  

View:

import json
def insert_tc(request):
    if request.method == 'POST':       
        ret = request.POST
        type = ret['type']
        list = json.loads(ret['json_data'])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django:从 QueryDict 读取 JSON 对象数组 的相关文章

  • 将 Javascript 正则表达式转换为 PHP

    我知道这个问题已经被问了大约十几次 但是从技术上讲 这个问题并不是一个骗局 如果您愿意 请检查其他问题 基本上 我有一个 Javascript 正则表达式来检查用于前端验证的电子邮件地址 并且我使用 CodeIgniter 在后端进行双重检
  • CSS - 制作“步进”文本的好方法?

    有没有一种好的方法可以实现以下目标 而无需任何额外的标记 不过使用 JavaScript 就很好了 任何想法 Thanks Edit 我的标记将是这样的 div style width 400px p Text text text Text
  • 每次用户在地址栏中按 Enter 时,Firefox 插件都会执行某些操作

    我正在尝试编写一个扩展程序 用于监视每次有人在使用地址栏时按下回车键时的情况 步骤将类似于 用户在地址栏中输入一堆文本并按 Enter 键 我的插件启动并接收用户输入的内容 然后我的插件决定如何处理用户输入的字符串 我通过使用在步骤 2 中
  • 检测 SVGAnimatedString 的类名

    我在构建 SVG 地图时遇到问题 触发的功能 g 上的 onmouseover 不起作用 我当时用的 window onmouseover function e console log e target className 查看类名是否有问
  • 如何隐藏 URL 中的 ID

    我以前在 Stack Overflow 上见过这类问题 但没有一个真正有帮助 我也用谷歌搜索过 但没有骰子 我想知道如果用户单击选项卡本身是否可以隐藏 URL 中的 ID 这是网页 www planet nu dev new experia
  • 如何处理 React JSX 中的长类名?

    假设我在 React JSX 中渲染这个组件 render return h1 Some text h1 这些类触发我的 JS linter 的行太长 而且很难阅读 怎样才能分开长className将 React 组件中的属性分成多行而不破
  • Javascript 3d 绘图实用程序? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道有什么好的 javascript 3d 绘图实用程序吗 我知道每个网站都推荐过画布 3d 图
  • 无法使用 jQuery 添加两个小数

    我试图将两个小数值相加 但返回的总和是纯整数 怎么了 我找不到它 欢迎任何帮助 jQuery delivery method ship select change function var cost jQuery this val jQue
  • 带有redirect_uri的social-auth-app-django Facebook后端状态

    我知道我的问题听起来像是重复的 但我到处寻找但没有找到任何解决方案 我正在努力为我的 django web 应用程序实现社交登录 到目前为止 谷歌 推特和雅虎登录均按预期工作 但facebook总是给出以下错误 URL 被阻止 此重定向失败
  • 在 Jest 测试中设置时刻时区

    我有 util 函数 它以特定的日期格式解析给定的日期 即 2019 01 28 然后使用momentJS检索当天的开始并将其转换为 ISO 日期格式 dates js import moment from moment export co
  • 根据复选框显示/隐藏输入字段[重复]

    这个问题在这里已经有答案了 如果单击该复选框 它将显示一个输入字段 到目前为止它正在工作 但如果未选中该复选框 它应该隐藏它 我该怎么做 div class checkbox div
  • 在浏览器中打开的 .mhtml 文件中填写输入

    我想对 mhtml 文件运行 e2e 测试 即填写表格 在 mhtml 文件上查看和提取数据效果非常好 但我无法填写任何内容input字段 既不是手动也不是通过木偶操作者 你可以用这个试试 mhtml 文件 https gist githu
  • Django:CSRF验证失败

    我试图将非 ssl 包装页面提交到 ssl 包装页面 但收到此错误 CSRF verification failed Request aborted Reason given for failure Referer checking fai
  • EmberJS:如何为 ember-data RESTAdapter 中的模型提供特定的 URL?

    问题一 如果我有一个名为 Company 的余烬数据模型 我如何告诉它点击 businesses and businesses id而是检索记录 有没有办法指定给定模型的 url 更好的是 像 BackboneJS 一样 我可以在运行时计算
  • Javascript 警报/消息框中的欧元符号或其他实体

    有谁知道我如何在 javascript 警报窗口中显示欧元或其他 html 实体 alert u20AC HTML 实体字符查找 http leftlogic com lounge articles entity lookup
  • ES6 模板文字可以在运行时替换(或重用)吗?

    tl dr 是否可以制作可重用的模板文字 我一直在尝试使用模板文字 但我想我就是不明白 现在我感到沮丧 我的意思是 我想我明白了 但 它 不应该是它的运作方式 或者它应该如何实现 它应该变得不同 我看到的所有示例 甚至标记模板 都要求 替换
  • Cypress.io 如何处理异步代码

    我正在将旧的水豚测试转移到 cypress io 因为我们的应用程序正在采用 SPA 方式 在我们的案例中 我们有超过 2000 个测试 涵盖了很多功能 因此 测试功能的常见模式是让用户创建并发布报价 一开始我写了 cypress 浏览页面
  • NodeJS 错误堆栈未定义 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在使用节点检查器 我注意到new Error 有未定义的堆栈 如果我将此值分配给一个变量 该变量将显示堆栈未定义 有趣的是 跑步new
  • “x modulo y”的结果是什么?

    引用 ECMAScript 规范第 5 2 节 符号 x modulo y y 必须是有限且非零 计算 值 k 与 y 具有相同的符号 或零 使得 abs k 因此 如果 y 为正 则 x modulo y 的结果 k 为正 无论 x 的符
  • 访问 Scrapy 内的 django 模型

    是否可以在 Scrapy 管道内访问我的 django 模型 以便我可以将抓取的数据直接保存到我的模型中 我见过this https scrapy readthedocs org en latest topics djangoitem ht

随机推荐

  • 有没有人有一段 PHP 代码来抓取字符串中的第一个“句子”?

    如果我有这样的描述 我们更喜欢可以回答的问题 而不仅仅是讨论 提供详细信息 写得清晰简单 我想要的只是 我们更喜欢可以回答的问题 而不仅仅是讨论 我想我会搜索一个正则表达式 比如 确定strpos 然后从主字符串中执行一个substr 但我
  • Ada 的命令行参数

    我正在编写一个 Ada 程序 该程序应该对字母字符进行大小写转换 该程序使用 1 2 或 3 个命令行参数 我几乎已经把事情写下来了 但我不知道如何进行论证 命令行参数是 单个字符指定是否要进行大写转换或小写转换 应用于输入 U 或 u 表
  • 如何用 numpy 在 Cython 中表示 inf 或 -inf ?

    我正在用 cython 逐个元素构建一个数组 我想存储常量np inf or 1 np inf 在某些条目中 然而 这将需要返回 Python 进行查找的开销inf 有没有libc math相当于这个常数 或者其他一些可以轻松使用的值 相当
  • C 语言的计算单元转换器

    我正在学习 C 并且编写了一个简单的程序 只是晒黑 输入时 您传递两个参数 行和列 输出时您会获得该单元格的 Calc 或 Excel 代码 例如 Input 3 1 Output A3 Input 1 27 Output AA1 代码 i
  • UIButton 数组或 UIButton 方法(名为:“\(string)”)

    是否可以制作一个数组UIButtons let buttonArray UIButton UIButton Button1 UIButton Button2 UIButton Button3 稍后参考为 buttonArray 0 setI
  • 我可以删除 TabControl 上选项卡上的虚线焦点矩形吗?

    我有一个选项卡控件 需要删除所选选项卡周围的虚线焦点矩形 我已将 TabControl 的 TabStop 属性设置为 false 但是 如果我单击一个选项卡并按Tab键 选项卡名称周围出现虚线矩形 我尝试过创建自己的TabControl并
  • 运行用户数据脚本 AWS EC2 时出现问题

    是否可以通过 AWSCLI 用户数据 运行 python 脚本 我尝试过 但它没有运行 我的日志中有以下内容 boot log 2015 08 07 10 08 30 660 init py WARNING Unhandled non mu
  • 在 silverlight 中播放视频?

    如何使用 silverlight 播放视频 Visual Studio 是否内置了视频播放器组件 或者我需要制作一个视频播放器 通常情况下 这取决于您的要求 您可以使用Silverlight自带的媒体元素 msdn信息在这里 http ms
  • 如何检测两个同时触摸?

    Windows Phone 8 中的触摸检测利用了 System Windows Input Touch FrameReported 事件 该事件是开发人员可用的最原始且响应速度最快的触摸事件 您可以像这样使用该事件 public Main
  • 如何保证主机应用程序和扩展程序使用的共享应用程序容器中的核心数据存储中的唯一条目?

    为了有效地提出我的问题 让我们首先考虑一下我面临的具体场景 常规设置 一个主机 iOS 8 应用程序 与主机应用程序捆绑在一起的一个或多个 iOS 8 扩展 WatchKit Share 等 主机应用程序和所有扩展在共享应用程序组容器中共享
  • 通过引用调用原型函数时,类失去“this”范围

    谁能向我解释为什么 b 返回未定义以及如何解决这个问题 当我通过引用调用原型函数时 为什么 this 范围会丢失 MyClass function test this test test MyClass prototype myfunc f
  • 如何确定动态创建的 DOM 元素是否已添加到 DOM 中?

    根据规格 http www w3 org TR REC html40 interact scripts html 只有BODY and FRAMESETelements 提供了一个要附加的 onload 事件 但我想知道动态创建的 DOM
  • sqlalchemy:每次提交都需要回滚吗?

    我正在为我的网络应用程序使用 SQLAlchemy 我见过很多这样的代码 try session commit except session rollback 我想知道是否每个人都有必要commit 手术 如果是 那么为什么它不属于comm
  • 代码合约问题

    你好 我有一个关于 CodeContracts 的小问题 我有一个类库项目 它作为一个类 具有方法 foo string s1 string s2 在 foo 方法中 我有一个 Contract Requires s1 null 因此 如果
  • 我可以创建一个与提交按钮功能相同的 CommandLink 吗?

    请理解我写作能力的不足 I am testing to make a custom credential provider I want to create a CommandLink that does the same thing wi
  • Rails:计划任务来预热缓存?

    我使用以下内容通过 memcached 缓存加载缓慢的页面 caches action complex report expires in gt 1 day 控制器操作受 Devise 身份验证保护 当前 该页面在用户第一次请求时被缓存 当
  • 如何在 OpenMDAO 1.x 中使用嵌套问题?

    我正在尝试在 OpenMDAO 上实现协作优化和其他多级架构 我读here https stackoverflow com questions 32612456 how to setup multi level mdo formulatio
  • ChromeOS 上 Android 应用的侧面加载和调试机制是什么?

    我已经经历了一切http www chromium org chromium os android apps http www chromium org chromium os android apps并且还观看了 IO 视频 似乎没有提到
  • 无法获取 Ripple 会话信息

    我使用 Visual Studio 2015 RC 创建了一个 Ionic Apache Cordova 应用程序 我在自己的解决方案文件中创建了它 并且可以使用 Ripple 运行它 现在我想将文件移动到与服务器应用程序相同的文件夹中 因
  • Django:从 QueryDict 读取 JSON 对象数组

    如何通过 JS 的 AJAX 调用传递复合 JSON 结构 并在服务器端将其读取为 python 中的 非常相似 的数据结构 我知道可以使用 json 格式 simplejson 等 但我不知何故觉得 QueryDict 本身在我的情况下格