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.