tutorial tablas para leer graficar funciones español documentacion datos con django pandas memcached django-rest-framework web-architecture

django - tablas - pandas python tutorial



Acceso al objeto de marco de datos de pandas entre solicitudes a través de la clave de sesión (1)

Si está ejecutando su aplicación en un servidor moderno, entonces 100mb no es una gran cantidad de memoria. Sin embargo, si tiene más de una docena de usuarios simultáneos, cada uno de los cuales requiere 100 MB de caché, esto podría agregar más memoria de la que su servidor puede manejar. Su caché y servidor deben estar configurados adecuadamente y es posible que desee limitar el número total de marcos de datos en caché en su código python.

Dado que parece que Django necesita serializar los datos de la sesión, tu elección es usar sesiones con PickleSerializer o usar el caché. De acuerdo con la documentación, PickleSerializer no se recomienda por razones de seguridad, por lo que su elección de usar el caché es buena.

El servidor de caché predeterminado en Django no comparte las entradas entre los procesos para que pueda obtener una mejor memoria y eficiencia de tiempo instalando memcached y habilitando el backend de memcached.MemcachedCache.

Tengo un marco de datos de pandas con una clase de envoltorio suelto que proporciona metadatos para mi aplicación django / DRF. La aplicación es básicamente una forma amigable para el usuario (no programadora) de realizar análisis y validación de datos. Entre las solicitudes, quiero poder guardar el estado del marco de datos para poder tener una serie de interacciones con los datos, pero no es necesario guardarlo en una base de datos (solo necesita sobrevivir el tiempo que dura la sesión del navegador). A partir de esto, era lógico verificar el marco de sesión de django, pero por lo que he oído, los datos de la sesión deberían ser livianos y el objeto del dataframe no se serializa.

Como no tengo muchos usuarios, y quiero que la aplicación se sienta como un sitio de escritorio, estaba pensando en usar el caché django como una forma de mantener el objeto del marco de datos en la memoria. Entonces poner los datos en el caché sería algo como esto

>>> from django.core.cache import caches >>> cache1 = caches[''default''] >>> cache1.set(request.session._get_session_key, dataframe_object)

y luego lo mismo, excepto el uso de obtener en las siguientes solicitudes de acceso. ¿Es esta una buena manera de manejar este flujo de trabajo o hay otro sistema que debo usar para mantener en la memoria datos bastante grandes (de 5 a 100 mb)?