после удаления попытки, кроме блока из кода, я получаю эту ошибку
снимок экрана почтальона с ошибкой
Я пытаюсь подключить Redis на сервере приложений к django. При проверке API в почтальоне я получаю сообщение о том, что перед выходным значением указана переменная вывода. Но API работает хорошо для Redis, который я скачал в моем локальном, и я получаю вывод, как ожидалось. Я думаю, что я ошибся, указав учетные данные в файле settings.py. Я хотел бы, чтобы кто-то помог мне выложить эту ошибку. Ниже я приложил учетные данные Redis кеша,
CACHES = {
"default" : {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis:// 3.233.27.21:6379/1",
"TIMEOUT": 86400 ,
"OPTION": {
"PASSWORD": "XXXXXXX",
"CLIENT_CLASS": "django_redis.client.DefaultClient",
},
"KEY_PREFIX": "XXXXXX"
}
}
Функция, views.py
from django.shortcuts import render
from django.views.decorators.cache import cache_page
from django.core.cache import cache
from django.db import connection
from rest_framework import status
from rest_framework.status import (
HTTP_400_BAD_REQUEST,
HTTP_404_NOT_FOUND,
HTTP_200_OK
)
from rest_framework.response import Response
from rest_framework.decorators import api_view
import json
import pandas as pd
from django.http import JsonResponse
@api_view(['POST'])
def cost_trend(request):
with connection.cursor() as cursor:
try:
body_unicode = request.body.decode('utf-8')
body_data = json.loads(body_unicode)
year = body_data.get("year")
employer = body_data.get("employer")
if employer != None and year != None:
result = []
if 'cost_trend' in cache:#checking whether the key is in cache
results = cache.get('cost_trend')
for r in results:
if r['egnid'] == employer and r['dt'] == int(year):
result.append(r)
df = pd.DataFrame(result,columns = ['paid_amt','month'])
df = json.loads(df.to_json(orient = 'records'))#making the filtered data as json
value = 0
for i in df:
value = value + i['paid_amt']
i['paid_amt'] = value
else:#if not, the data is fetched from database and stored in cache
sql_query = """select json_agg(amt)
from
(select json_build_object('paid_amt',round(sum(paid_amt))::int,'month',
TO_CHAR(svc_from_date,'MON YYYY'),'egnid',eg_nid,'dt',extract(year from svc_from_date)) amt
from application.ckd_details
where left(paid_amt::text,1) != '-'
group by TO_CHAR(svc_from_date,'MON YYYY') ,eg_nid,extract(year from svc_from_date)
order by to_date(TO_CHAR(svc_from_date,'MON YYYY'),'MON YYYY'))a;"""
cursor.execute(sql_query)
results = cursor.fetchone()[0]
connection.commit()
cache.set('cost_trend',results)
for r in results:
if r['egnid'] == employer and r['dt'] == int(year):
result.append(r)
df = pd.DataFrame(result,columns = ['paid_amt','month'])
df = json.loads(df.to_json(orient = 'records'))
value = 0
for i in df:
value = value + i['paid_amt']
i['paid_amt'] = value
else:
df = "Invalid input type"
connection.close()
except:
print("Error")
connection.close()
return Response(df)
Заранее спасибо.