Django Retorno JSON

Salman Mehmood 15 febrero 2024
Django Retorno JSON

Esta discusión verá una breve introducción al formato JSON y convertirá los datos al formato JSON usando la clase JsonResponse en Django.

Use la clase JsonResponse para devolver datos en formato JSON en Django

JSON también se conoce como notación de objetos de JavaScript y es simplemente una representación de datos. Se usa ampliamente en Internet para casi todas las API.

JSON es extremadamente liviano para enviar datos en el sitio del cliente. También se integra muy bien con JavaScript.

Dado que JSON es solo un superconjunto de JavaScript, se integra muy bien con JavaScript. Casi todos los idiomas principales tienen una biblioteca o funcionalidad integrada para analizar cadenas JSON en objetos o clases.

Pasar datos en formato JSON es extremadamente fácil en Django; Vamos a ver cómo funciona.

Empecemos por crear un modelo Perfil. Crearemos tres campos nombre, correo electrónico y bio en este modelo. Estos campos serían CharField con 1000 max_length.

class Profile(models.Model):
    name = models.CharField(max_length=1000)
    email = models.CharField(max_length=1000)
    bio = models.CharField(max_length=1000)

Necesitamos registrar el modelo Perfil en el archivo admin.py.

from .models import Book, Profile

admin.site.register(Book)
admin.site.register(Profile)

Necesitamos crear una nueva URL, por lo que llamará a la función json desde el archivo views.py cada vez que lleguemos a esta URL.

urlpatterns = [
    path("admin/", admin.site.urls),
    path("json", views.json, name="json"),
]

Ahora necesitamos crear una nueva función que sea json. Primero, necesitamos importar JsonResponse y otros módulos requeridos.

from .models import Profile
from django.http import JsonResponse

En la función json, obtenemos valores de los objetos Perfil usando objects.values() y los convertimos en un tipo de datos de lista.

Después de crear la variable data, debemos devolver los datos en la respuesta JSON. Después de pasar una variable data en la clase JsonResponse, debemos asegurarnos de pasar el argumento safe y establecerlo igual a False.

def json(request):
    data = list(Profile.objects.values())
    return JsonResponse(data, safe=False)

Para crear nuestro modelo, necesitamos hacer la migración. Los siguientes comandos nos permitirán ver nuestros modelos en el panel de administración.

python manage.py makemigrations
python manage.py migrate

Ahora todo funcionará bien, simplemente ejecute el servidor usando este comando y vea qué sucede.

python manage.py runserver

Ejecutaremos el navegador y pasaremos con esta dirección http://127.0.0.1:8000/admin al panel de administración. Si abrimos nuestro modelo por primera vez, debemos agregar el modelo usando el botón superior derecho.

Django devuelve la salida JSON

Después de completar los campos, debemos guardar este objeto e ir a la página JSON a través de http://127.0.0.1:8000/json.

[
    {
    id: 1,
    name: "jeams parker",
    email: "exampl@example.com",
    bio: "This is the example bio"
    }
]

Ahora podemos acceder a los datos en formato JSON.

Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn

Artículo relacionado - Django JSON