Как получить данные из почтового запроса с помощью шаблонов Django Python

У меня есть два проекта, первый - Node.JS.

        jsonobj = JSON.stringify(generateMockData)
        xhrToSoftware.send(jsonobj);
        xhrToAPI.open("POST", "http://127.0.0.1:8000/path/", true);
        xhrToAPI.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
        xhrToAPI.send(jsonobj);

Он отправляет данные во второй проект Django Python. Я могу получить данные, используя мой views.py.

post_data = json.loads(request.body.decode("utf-8")) 
value = post_data.get('data')
print(value)

Но я хочу напрямую получить данные из Node.JS в мой Django Templates (javascript or jquery) возможно ли это?

например:

<script>
 //get the data that posted by the node.js
</script>

Я попробовал использовать этот:

fetch('http://127.0.0.1:8000/path/')
    .then(response => response.json())
    .then(data => {
        console.log(data);
    })
    .catch(error => console.error(error));

но у меня ошибка, в ней говорится, что:

SyntaxError: Unexpected token '<', "<!-- 
 
<d"... is not valid JSON

Думаю, это потому, что я возвращаю html-файл в моем views.py:

def data(request):
    if request.method == 'POST':
        post_data = json.loads(request.body.decode("utf-8"))  # for simulation
        value = post_data.get('data')
    return render(request, 'waterplant/iot/data.html')

поэтому я меняю его на jsonresponse следующим образом:

def data(request):
    if request.method == 'POST':
        post_data = json.loads(request.body.decode("utf-8"))  # for simulation
        value = post_data.get('data')
        return JsonResponse({"msg": value}, status=200)

После этого у меня возникает ошибка ValueError: The view views.data didn't return an HttpResponse object. It returned None instead. Я думаю, это потому, что значение еще пустое. Как я могу предотвратить это? Если я отправляю данные с помощью Node.JS, я хочу вернуть их в виде return JsonResponse({"msg": value}, status=200) Или у вас есть идеи, как я могу получить доступ к данным непосредственно в моих шаблонах Django Python <script> here </script>

Вернуться на верх