[pyar] Django - Saber la request "actual"

Luis Masuelli luismasuelli en hotmail.com
Vie Jul 25 11:49:42 ART 2014


Si :D eso lo hace. Eso me sirve para mi proposito y creo que para el del pibe. El del signal no se si tanto, porque para eso tendria que poder pasarle como parametro la request actual de todas formas, pero con lo del Greenlet-local (patch) me banca. De investigar tmb vi que podria usar los context locals si instalo el paquete de Werkzeug (que por lo que vi no deberia tener problema de usar con django).

Date: Fri, 25 Jul 2014 00:38:22 -0300
From: ecastroborsani en gmail.com
To: pyar en python.org.ar
Subject: Re: [pyar] Django - Saber la request "actual"

Nunca me tope con la misma situacion, asi que no se cual es la solucion correcta. Pero te contesto la pregunta sobre greenlets...

Si usas gevent (en lugar de greenlets directamente), monkey.patch_thread [0] convierte los thread locals en greenlets locals [1]... tendrias que ver que es lo que hace exactamente esa funcion.


[0] http://www.gevent.org/gevent.monkey.html
[1] http://www.gevent.org/gevent.local.html



El 24 de julio de 2014, 23:02, xavier lesa <xavierlesa en gmail.com> escribió:

Si con esto https://docs.djangoproject.com/en/dev/ref/signals/#django.core.signals.request_finished

Saludos


El jueves, 10 de julio de 2014, Luis Masuelli <luismasuelli en hotmail.com> escribió:





Como hago para saber la request actual bajo la cual estoy ejecutando cierto codigo? El tema que me viene a la mente es algo que me cago hace tiempo al hacer una aplicacion, y ahora vi que un pibe preguntaba lo mismo (http://stackoverflow.com/questions/24661849/using-request-cookies-in-routedatabase-django) y yo comente una solucion que me parece algo asquerosa:


    1. Crear un threading.local en mi propio middleware, y cuando proceso una request, asignarle (en mi caso) la request que estoy procesando al threadlocal.
    2. Durante la ejecucion del metodo clean() de mi campo personalizado (uno que habia hecho que tenia su propio clean() que dependia de la request actual), recuperaba la request desde el threadlocal que habia creado.

    3. Liberaba el threadlocal al terminar la request (en el process_response), para el hilo actual.
Esta solucion, cuando yo la concebi, no tenia en cuenta que no todos los servidores son threaded (una request implique un hilo). Entonces me pregunto: como haria lo mismo para un servidor donde, por ejemplo, una request equivale a un GREENLET? (o lo equivalente en el caso de gunicorn).


Mi pregunta entonces va mas abstracta: como puedo saber globalmente cual es el objeto request que estoy procesando en la peticion actual, pero globalmente? (es decir: alguna funcion utilitaria; asumamos que no puedo acceder al parametro request que fue pasado a la vista actual).

 		 	   		  


-- 


Xavier
xavierlesa.com | @xavierlesa


cel: +011 15 3868-3918



_______________________________________________

pyar mailing list pyar en python.org.ar

http://listas.python.org.ar/listinfo/pyar



PyAr - Python Argentina - Sitio web: http://www.python.org.ar/



La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar



_______________________________________________
pyar mailing list pyar en python.org.ar
http://listas.python.org.ar/listinfo/pyar

PyAr - Python Argentina - Sitio web: http://www.python.org.ar/

La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar 		 	   		  
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20140725/65ec4a5b/attachment-0001.html>


More information about the pyar mailing list