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.