关于python:如何在视图Django中更改渲染以返回json

How I can change render to return json in view Django

本问题已经有最佳答案,请猛点这里访问。

我有自己的功能

1
2
3
4
5
6
7
8
9
from django.shortcuts import render
from .models import myModel

def articleTheme(request):
    if request.method == 'POST':
        article_id = request.POST['id']
        article = myModel.objects.get(id=article_id)
        theme = article.theme
        return render(request, 'theme.html', {'newTheme': theme })

现在工作正常。但是我有多余的HTML。我想要返回JSON对象。我可以导入和返回什么?


使用JsonResponse

1
2
3
4
5
from django.http import JsonResponse
..
def articleTheme(request):
    ..
    return JsonResponse({'newTheme': theme })

您可以使用HttpResponse和json格式返回数据,如下所示:

1
2
3
data = {'newTheme': theme}
data = json.dumps(data, cls=DjangoJSONEncoder)
return HttpResponse(data)