当前位置: 首页 > 面试题库 >

Python-使用Django和Python创建JSON响应

秦博延
2023-03-14
问题内容

我正在尝试将服务器端Ajax响应脚本转换为Django HttpResponse,但显然无法正常工作。

这是服务器端脚本:

/* RECEIVE VALUE */
$validateValue=$_POST['validateValue'];
$validateId=$_POST['validateId'];
$validateError=$_POST['validateError'];

/* RETURN VALUE */
$arrayToJs = array();
$arrayToJs[0] = $validateId;
$arrayToJs[1] = $validateError;

if($validateValue =="Testuser"){  // Validate??
    $arrayToJs[2] = "true";       // RETURN TRUE
    echo '{"jsonValidateReturn":'.json_encode($arrayToJs).'}';  // RETURN ARRAY WITH success
}
else{
    for($x=0;$x<1000000;$x++){
        if($x == 990000){
            $arrayToJs[2] = "false";
            echo '{"jsonValidateReturn":'.json_encode($arrayToJs).'}';   // RETURNS ARRAY WITH ERROR.
        }
    }
}

这是转换后的代码

def validate_user(request):
    if request.method == 'POST':
        vld_value = request.POST.get('validateValue')
        vld_id = request.POST.get('validateId')
        vld_error = request.POST.get('validateError')

        array_to_js = [vld_id, vld_error, False]

        if vld_value == "TestUser":
            array_to_js[2] = True
            x = simplejson.dumps(array_to_js)
            return HttpResponse(x)
        else:
            array_to_js[2] = False
            x = simplejson.dumps(array_to_js)
            error = 'Error'
            return render_to_response('index.html',{'error':error},context_instance=RequestContext(request))
    return render_to_response('index.html',context_instance=RequestContext(request))

我正在使用simplejson对Python列表进行编码(因此它将返回JSON数组)。我还不能弄清楚问题所在。但是我认为我对“回声”做错了。


问题答案:

我通常使用字典,而不是列表来返回JSON内容。

import json

from django.http import HttpResponse

response_data = {}
response_data['result'] = 'error'
response_data['message'] = 'Some error message'

在Django 1.7之前的版本中,你将像这样返回它:

return HttpResponse(json.dumps(response_data), content_type="application/json")

对于Django 1.7+,请JsonResponse按照以下SO答案所示使用:

from django.http import JsonResponse
return JsonResponse({'foo':'bar'})


 类似资料:
  • 问题内容: 我正在尝试将服务器端Ajax响应脚本转换为Django HttpResponse,但显然无法正常工作。 这是服务器端脚本: 这是转换后的代码 我正在使用simplejson对Python列表进行编码(因此它将返回JSON数组)。我还不能弄清楚问题所在。但是我认为我对“回声”做错了。 问题答案: 我通常使用字典,而不是列表来返回JSON内容。 在Django 1.7之前的版本中,您将像这

  • 主要内容:json.dumps(),json.loads()本节我们来介绍一下如何使用 Python 来创建和解析 JSON 数据。 与 PHP 类似,Python 中同样提供了两个函数来分别创建和解析 JSON 数据, 注意:本节是基于 Python3 进行介绍的: json.dumps():将 Python 对象转换为 JSON 数据; json.loads():将 JSON 数据解析为 Python 对象。 json.dumps() 在 Python

  • 问题内容: websockets有趣的部分是从服务器向浏览器发送本质上未经请求的内容,对吗? 好吧,我正在使用GregorMüllegger的django-websocket。使Websockets在Django中工作确实是一个很棒的早期尝试。 我完成了“ hello world”。它的工作方式是:当请求是websocket时,会将对象websocket附加到请求对象。因此,在解释websocke

  • 主要内容:Python类的实例化,Python类对象的使用通过前面章节的学习,我们已经学会如何定义一个类,但要想使用它,必须创建该类的对象。 创建类对象的过程,又称为类的实例化。 Python类的实例化 对已定义好的类进行实例化,其语法格式如下: 类名(参数) 定义类时,如果没有手动添加 __init__() 构造方法,又或者添加的 __init__() 中仅有一个 self 参数,则创建类对象时的参数可以省略不写。 例如,如下代码创建了名为 CLang

  • 我有两个容器“web”和“db”。我有一个csv格式的现有数据文件。 问题是,我可以使用docker compose使用模式初始化MySQL数据库,或者只使用参数运行,但如何导入现有数据?我有Python脚本来解析和过滤数据,然后将其插入数据库,但我无法在“db”容器中运行它,因为单个图像是MySQL。 更新1 有一个Python脚本,用于从csv文件读取数据并将其插入数据库,效果很好。现在我想在

  • 本文向大家介绍python Django 创建应用过程图示详解,包括了python Django 创建应用过程图示详解的使用技巧和注意事项,需要的朋友参考一下 如图输入如下命令 添加应用到 autotest项目项目下 在settings.pyo 中加入“apitest”,如下图 创建视图 在apitest/views中添加test 函数 创建映射 现在把视图中的函数映射到浏览器前端页面,在auto