[pyar] Django - Saber la request "actual"

Esteban Castro ecastroborsani en gmail.com
Vie Jul 25 00:38:22 ART 2014


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 <http://twitter.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
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20140725/589e1ad4/attachment.html>


More information about the pyar mailing list