Ich bin neu in der Webentwicklung in Python und ich habe Flask gewählt, um meine Webanwendung zu starten. Ich habe einige Ressourcen, die ich vor dem Herunterfahren der Anwendung freigeben muss, aber ich konnte nicht herausfinden, wo ich meinen Bereinigungscode ablegen soll. Flask bietet einige Dekoratoren wie before_request
und teardown_request
, um Callbacks vor und nach der Verarbeitung der Anfrage zu registrieren. Gibt es etwas Ähnliches, um einen Rückruf zu registrieren, der aufgerufen wird, bevor die Anwendung beendet wird? Danke.Wo kann ich Cleanup-Code in eine Flask-Anwendung einfügen?
8
A
Antwort
3
Das Modul atexit
ermöglicht es Ihnen, Rückrufrückrufe zu programmieren. Seine Rückrufe werden jedoch nicht aufgerufen, wenn die Anwendung durch ein Signal beendet wird. Wenn Sie diese Fälle behandeln müssen, können Sie dieselben Rückrufe mit dem Modul signal
registrieren (z. B. wenn Sie das Signal SIGTERM verarbeiten möchten).
Ich habe möglicherweise missverstanden, was genau Sie bereinigen möchten, aber Ressourcen wie Dateihandles oder Datenbankverbindungen werden sowieso beim Herunterfahren des Interpreters geschlossen, also sollten Sie sich keine Sorgen machen.
Verwandte Themen
- 1. Wo kann ich die globale Ajax-Fehlerbehandlung in Ember einfügen?
- 2. Wo sollte ich Javascript-Bibliotheken in eine Grails-App einfügen?
- 3. Kann ich HtmlPartial in eine ActionLink einfügen
- 4. Wo kann ich benutzerdefinierten Code in eine benutzerdefinierte Komponente in Flash Builder einfügen?
- 5. Java 3D: Wo kann ich ein "Post Rendering" FX einfügen?
- 6. SQL in einfügen .. wo (Python)
- 7. Wo kann ich eine XSL-Funktion in ein XSL-Dokument einfügen?
- 8. Warum kann ich eine Nummer in eine VARCHAR2-Spalte einfügen?
- 9. Kann ich eine Zeile in eine GridView einfügen?
- 10. Kann ich eine throw-Deklaration in eine typedef-Funktionssignatur einfügen?
- 11. Wo einfügen Skriptblöcke
- 12. Wo kann ich eine UINavigationControllers supportedOrientations setzen?
- 13. Wo kann ich eine ascmd.exe herunterladen?
- 14. Wo kann ich eine eigenständige nmake.exe erhalten?
- 15. Wie kann ich Text in eine Zeichenfolge in Perl einfügen?
- 16. Wie könnte ich eine Zeichenfolge in den Antwortstream einfügen, wo ich will?
- 17. Wo Code-Snippets in Rails einfügen?
- 18. Wo sollte ich Klassenerweiterungen in das Ember App Kit einfügen?
- 19. Wie kann ich Zufallswerte in eine SQL Server-Tabelle einfügen?
- 20. Kann ich in forEach eine Überprüfung auf Nulldetails einfügen?
- 21. Warum kann ich proxy_set_header nicht in eine if-Klausel einfügen?
- 22. Wie kann ich eine Titelzeile in meine benutzerdefinierte Adapterliste einfügen?
- 23. Kann ich eine Datei in Codenameon-Desktop-Apps einfügen?
- 24. Wie kann ich einfache Anführungszeichen in eine Zeichenfolge einfügen?
- 25. Wie kann ich eine Mehrfachberechnung in ein vim-Textdokument einfügen?
- 26. Wie kann ich RTF in eine wxpython RichTextCtrl einfügen?
- 27. Wie kann ich ein Bild in eine RichTextBox einfügen?
- 28. Kann ich eine .gitmodules-Datei in ein Unterverzeichnis einfügen?
- 29. Pouchdb Wie kann ich Attachment in eine for-Schleife einfügen?
- 30. SQL Server 2014 Einfügen wo nicht IN
Welche Ressourcen? –
Ich kenne keine Einrichtung, die von Flask angeboten wird, wenn die Anwendung beendet wird. Es wäre interessant zu wissen, was genau du aufräumen willst. Python hat das 'atexit'-Modul, das möglicherweise das ist, wonach Sie suchen. –
Ich benutze eine neo4j Datenbank und ich behalte einen Verbindungspool. Ich nehme an, dass atexit die Arbeit erledigen würde. Ist es der geeignetere Ort, um meinen Cleanup-Code zu platzieren? –