gpt4 book ai didi

json - 通过 AJAX 将 JSON 对象从 Django View 返回给客户端

转载 作者:行者123 更新时间:2023-12-05 03:12:27 24 4
gpt4 key购买 nike

基本上,我试图将原始 SQL 查询结果转换为 JSON 对象,然后通过 AJAX 将其发送到客户端。这是我的观点(我正在使用 Django 1.8.6)

import MySQLdb
from django.db import connection
import json
from django.http import HttpResponse
from django.core import serializers
def test_view(request):
cursor = connection.cursor()
cursor.execute("select id, name from okved")
data = cursor.fetchall
json_data = serializers.serialize('json', data)
return HttpResponse(json_data, content_type="application/json")

各自的URLConf

url(r'^test/$', test_view),

JQuery 函数

var test = function()
{
$.ajax({
type:"GET",
url:"/test",
dataType : 'json',
cache: "false",
data:{},
success:function(response)
{
alert("Test successful");
}
});
return true;
}

我不断得到GET http://127.0.0.1:8000/test/ 500 (INTERNAL SERVER ERROR) 错误,wheareas 我遵循我在这里遇到的先前线程的所有建议。我真的很感激这方面的任何帮助。我在尝试浏览 Stackoverflow 时大吃一惊。

最佳答案

首先,500 error 只是一个错误代码,django 会为您提供函数堆栈中错误发生位置的堆栈跟踪,您应该学会阅读它并找到错误发生的位置。

从您的代码看来,您正在尝试使用序列化器 来序列化原始查询结果。这是行不通的,因为原始结果是元组的元组,每个子元组都是从数据库返回的记录。 Django serializers 只擅长序列化从 ORM 查询的对象。你最好使用 json.dumps() 方法。这是您的 views.py 中的最后几行:

data = cursor.fetchall()
json_data = json.dumps(data)
return HttpResponse(json_data, content_type="application/json")

这是 doc用于 Django 序列化程序。

关于json - 通过 AJAX 将 JSON 对象从 Django View 返回给客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33657773/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com