Django.fun

request.body not giving the desired json in django

i have started exploring api stuffs in django
i want some JsonResponse in Django but i am not getting it

views.py

from django.shortcuts import render
from django.http import JsonResponse
import json

# Create your views here.

def api_home(request, *args, **kwargs):
    body = request.body
    print(body)
    data = {}
    try:
        data = json.loads(body)
    except:
        pass
    # print(data)
    data['headers'] = dict(request.headers)
    data['content_type'] = request.content_type
    return JsonResponse(data)

Output in terminal

b''

expected OUTPUT

b'{"query":"Hello World!"}' 

Python file

import requests

endpoint = "http://127.0.0.1:8000/api"

get_response = requests.get(endpoint, json={"query":"Hello World!"})

print(get_response.json())

Output of this file

{'headers': {'Content-Length': '', 'Content-Type': 'text/plain', 'Host': 
'127.0.0.1:8000', 'User-Agent': 'python-requests/2.27.1', 'Accept-Encoding': 'gzip, 
deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}, 'content_type': 'text/plain'}

Expected OUTPUT

{'query':'Hello World!','headers': {'Content-Length': '', 'Content-Type': 'text/plain', 
'Host':'127.0.0.1:8000', 'User-Agent': 'python-requests/2.27.1', 'Accept-Encoding': 
'gzip,deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}, 'content_type': 
'text/plain'}

I am not getting that why i am getting different output here

link entered was missing a '/' at end endpoint = "http://127.0.0.1:8000/api/"

Tutorials

Константы Python: Улучшение управляемости вашего кода

Современный Python: начинаем проект с pyenv и poetry

Настройка проекта Python — виртуальные среды и управление пакетами

Использование requests в Python — тайм-ауты, повторы, хуки

Понимание декораторов в Python

ProcessPoolExecutor в Python: полное руководство

map() против submit() с ProcessPoolExecutor в Python

Понимание атрибутов, словарей и слотов в Python

Полное руководство по slice в Python

Выпуск Django 4.0

Безопасное развертывание приложения Django с помощью Gunicorn, Nginx и HTTPS

Автоматический повтор невыполненных задач Celery

Django REST Framework и Elasticsearch

Докеризация Django с помощью Postgres, Gunicorn и Nginx

Асинхронные задачи с Django и Celery

Релизы безопасности Django: 3.2.4, 3.1.12 и 2.2.24

Выпуски исправлений ошибок Django: 3.2.3, 3.1.11 и 2.2.23

Эффективное использование сериализаторов Django REST Framework

Выпуски безопасности Django: 3.2.2, 3.1.10 и 2.2.22

Выпущенные релизы безопасности Django: 3.2.1, 3.1.9 и 2.2.21

View all tutorials →