Soy nuevo en el desarrollo web en Python y he elegido Flask para iniciar mi aplicación web. Tengo algunos recursos para liberar antes del cierre de la aplicación, pero no pude encontrar dónde poner mi código de limpieza. Flask proporciona algunos decoradores como before_request
y teardown_request
para registrar las devoluciones de llamada antes y después del proceso de solicitud. ¿Hay algo similar para registrar una devolución de llamada que deba invocarse antes de que se detenga la aplicación? Gracias.¿Dónde pongo el código de limpieza en una aplicación Flask?
8
A
Respuesta
3
El módulo atexit
le permite registrar devoluciones de llamadas de terminación de programas. Sin embargo, no se invocarán las devoluciones de llamada si la aplicación finaliza con una señal. Si necesita manejar esos casos, puede registrar las mismas devoluciones de llamada con el módulo signal
(por ejemplo, es posible que desee manejar la señal SIGTERM).
Puede que haya entendido mal qué es exactamente lo que quiere limpiar, pero los recursos como los identificadores de archivos o las conexiones de bases de datos se cerrarán de todos modos al apagar el intérprete, por lo que no debería preocuparse por ellos.
Cuestiones relacionadas
- 1. ¿dónde pongo el código en Sinatra que quiero ejecutar cuando la aplicación se apaga?
- 2. ¿Dónde pongo el código de inicio en Play Framework?
- 3. ¿Cómo debería estructurar una aplicación Java? ¿Dónde pongo mis clases?
- 4. ¿Dónde pongo mi código backend de falla resque-retry?
- 5. Dónde pongo métodos comunes en la aplicación MVC
- 6. ¿Dónde coloca el código de limpieza para las subclases de NSDocument?
- 7. ¿Dónde pongo META-INF en Eclipse?
- 8. intellij - código de limpieza
- 9. Limpieza de código en netbeans
- 10. Unidad probando una clase de aplicación Flask
- 11. ¿Dónde pongo una función XSL en un documento XSL?
- 12. ¿Dónde pongo la etiqueta de script jQuery?
- 13. Despliegue de una aplicación Flask con CGI
- 14. ¿Dónde pongo el archivo de constantes para Codeigniter (PHP)?
- 15. Si una clase de "Utilidades" es mala, ¿dónde pongo mi código genérico?
- 16. ¿Cómo organizar una aplicación Flask relativamente grande?
- 17. ¿Cómo se demoniza una aplicación Flask?
- 18. ¿Dónde defino el dominio que utilizará url_for() en Flask?
- 19. ¿Dónde insertar el código para el inicio de la aplicación?
- 20. ¿Dónde pongo RewriteRules en Apache2 sin usar archivos .htaccess?
- 21. ¿Cómo implementar la aplicación Flask en Webfaction?
- 22. ¿Dónde pongo métodos de ayuda para las vistas de ActionMailer?
- 23. ¿Dónde pongo todas estas funciones, como #defines, en C?
- 24. ¿Cómo pongo mi aplicación OpenGL en modo de pantalla completa?
- 25. ¿Dónde pongo mi archivo jetty.xml con Jetty embedded?
- 26. Flask/Werkzeug depurador, modelo de proceso y código de inicialización
- 27. Limpieza de código nítido C: reajuste
- 28. ¿Cómo pongo ejemplos de código en comentarios XML de .NET?
- 29. Acceso a recursos multiproceso: ¿dónde pongo mis bloqueos?
- 30. Jquery .each() incluyendo un retraso buscando el código de limpieza
¿Qué recursos? –
No conozco ninguna instalación ofrecida por Flask cuando la aplicación se detiene. Sería interesante saber exactamente qué quieres limpiar. Python tiene el módulo 'atexit', que puede ser lo que estás buscando. –
Estoy usando una base de datos neo4j y guardo un grupo de conexiones. Supongo que atexit haría el trabajo. ¿Es el lugar más apropiado para poner mi código de limpieza? –