requests getlist body python json django python-3.x backbone.js

python - getlist - request post get django



Tratando de analizar `request.body` de POST en Django (1)

En Python 3.0 a Python json.loads() , json.loads() solo aceptará una cadena unicode, por lo que debe decodificar request.body (que es una cadena de bytes) antes de pasarlo a json.loads() .

body_unicode = request.body.decode(''utf-8'') body = json.loads(body_unicode) content = body[''content'']

En Python 3.6, json.loads() acepta bytes o bytearrays . Por lo tanto, no debería necesitar decodificar request.body (suponiendo que esté codificado en UTF-8, UTF-16 o UTF-32).

Esta pregunta ya tiene una respuesta aquí:

Por alguna razón, no puedo entender por qué Django no está manejando correctamente mi contenido de request.body .

Se está enviando en formato JSON , y al mirar la pestaña Network en Dev Tools se muestra como la carga útil de la solicitud:

{creator: "creatorname", content: "postcontent", date: "04/21/2015"}

que es exactamente cómo quiero que se envíe a mi API.

En Django tengo una opinión que acepta esta solicitud como parámetro y solo para mis propósitos de prueba, debería imprimir request.body["content"] a la consola.

Por supuesto, no se está imprimiendo nada, pero cuando request.body obtengo esto:

b''{"creator":"creatorname","content":"postcontent","date":"04/21/2015"}''

entonces sé que tengo un cuerpo siendo enviado.

Intenté usar json = json.loads(request.body) sin ningún resultado. Imprimir json luego de configurar esa variable tampoco devuelve nada.