【问题标题】:JSONDecodeError at / Expecting value: line 1 column 1 (char 0) when try to return response in a django rest_frameworkJSONDecodeError at / Expecting value: line 1 column 1 (char 0) 当尝试在 django rest_framework 中返回响应时
【发布时间】:2022-01-01 11:18:39
【问题描述】:

我是 python rest_framework 的新手。我正在尝试创建一个带有两个Apps 的django 网站。 第一个 App 有一个 HTML 表单,它从用户那里获取城市名称,然后向 第二个 App 中的 API 发送请求,调用WeatherApp。在WeatherApp 中,我从数据库中读取数据并对其进行序列化,但在尝试return response 时,出现此错误:

JSONDecodeError 在 / 期望值:第 1 行第 1 列(字符 0)

这是第一个应用views

def index(request):
    context = {'form': form}

    if request.method == 'POST':
        form = CityForm(request.POST)
        if form.is_valid():
            name = form.cleaned_data['name']

        url = "http://127.0.0.1:8000/city/{}"
        city_weather = requests.get(url.format(name)).json()

这是WeatherAppviews

def myfunc(self, cityname):
    query = City.objects.filter(name = cityname)[0]
    serializer = CitySerializer(query)
    return Response(serializer.data)

任何帮助将不胜感激。

【问题讨论】:

    标签: python json django django-rest-framework


    【解决方案1】:

    我想通了,并将解决方案分享给有类似问题的任何人:

    问题出在return 中的WeatherApp views。 应该是这样的:

    return JsonResponse(serializer.data)
    

    JsonResponse 应该像这样导入:

    from django.http import JsonResponse
    

    【讨论】:

      猜你喜欢
      • 2020-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-12
      • 1970-01-01
      • 2021-06-02
      • 2023-02-21
      • 2021-06-11
      相关资源
      最近更新 更多