Django: Variablen auf App-Ebene

Ich habe eine Django-Rest-Framework-App erstellt. Es stellt eine API zur Verfügung, die einige get / set-Operationen in der MySQL-Datenbank ausführt.

Ich muss eine HTTP-Anforderung an einen anderen Server senden und diese Antwort zusammen mit der üblichen Antwort huckepack geben. Ich versuche, einen selbst erstellten HTTP-Verbindungspool zu verwenden, um HTTP-Anforderungen zu erstellen, anstatt bei jeder Anforderung neue Verbindungen herzustellen.

Was ist der am besten geeignete Ort, um dieses HTTP-Verbindungspoolobjekt auf App-Ebene beizubehalten?

Ich habe mich danach umgesehen und es gibt mehrere Lösungen mit einigen Nachteilen. Hier sind einige

Um eine Singleton-Klasse des Pools in einer Diff-Datei zu erstellen, ist dies keine gute pythonische Methode. Es gibt verschiedene Diskussionen darüber, warum man kein Singleton-Entwurfsmuster verwenden sollte.

Auch ich weiß nicht, wie intelligent es wäre, einen Pooler zu bündeln? (: P)

Um es in @ zu behaltdri .py des App-Verzeichnisses Das Problem dabei ist wie folgt:s sollte nur Importe und damit zusammenhängende Dinge enthalteEs wird schwierig sein, den Code in Einheiten zu testen, da der Import vor dem Verspotten stattfinden würde und tatsächlich versucht würde, die API zu erreichen.

Sitzungen verwenden, aber ich denke, das ist sinnvoller, wenn es sich um eine benutzersitzungsspezifische Nummer handelt.

Auch das Objekt muss serialisierbar sein. Ich weiß nicht, wie der HTTP-Verbindungspool serialisiert werden kann.

Um es in views.py global zu halten, wird auch davon abgeraten.

Was ist der beste Ort, um solche Variablen auf App- / globaler Ebene zu speichern?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage