/ / Globales Wörterbuch zwischen zwei Dateien - Python, Django, Wörterbuch

Globales Wörterbuch zwischen zwei Dateien - Python, Django, Wörterbuch

Ich habe hier viele Dinge ausprobiert, aber etwas festgefahren.

Ich habe zwei Python-Dateien.

----------------------------------

# file_one.py

from file_two import add_value

# Generate some value and pass it over to file_two by calling the function add_value

print add_value("somevalue")

----------------------------------

#file_two.py

myDictionary = {}

def add_value(payload):
global myDictionary
# Insert payload with a timestamp in to myDictionary
myDictionary[payload] = "{:%Y-%m-%d %H:%M:%S}".format(datetime.now())
return myDictionary

def some_other_function():

print myDictionary

Wenn ich das Wörterbuch in file_two drucke.Mit einer anderen Funktion bekomme ich nur {}. Ich habe alle möglichen verschiedenen Methoden ausprobiert, um das Wörterbuch einzurichten und nicht global usw. zu verwenden, aber ich kann keine Informationen in file_two herausfinden.

file_one funktioniert einwandfrei und druckt das myDictionary mit den korrekten Werten.

Ich nehme an, meine Frage besteht aus zwei Teilen. Wie bekomme ich Zugriff auf das Wörterbuch in file_two und wo werden die Daten gespeichert, wenn nicht in file_two!

Vielen Dank

Bearbeiten 1

Etwas hintergrund file_two ist eine Django-Ansicht.py also some_other_function ist eine Browseranfrage. Die Idee ist, ich werde die Informationen aus dem Wörterbuch an den Browser übergeben, um sie zusammen mit Datenbankinformationen anzuzeigen.

Könnte das das Problem sein? Etwas mit dem Django-Paket zu tun?

Ich drucke eigentlich nichts. Meistens logger.info ......

Bearbeiten 2

Ich habe dieses Problem gelöst, indem ich eine SQLite-Datenbank in verwendet habeOrdner / dev / shm stattdessen. Dies ist ein RAM-Ordner und bleibt nicht nach einem Neustart bestehen, nach dem ich gesucht habe. Eine tatsächliche SQLite-Datenbank ist leicht aus mehreren verschiedenen Python-Skripts zu erstellen.

Antworten:

0 für die Antwort № 1

Wie setzt du Django ein? Wenn Sie mehrere Worker haben, können globale Variablen wie myDictionary darf nicht geteilt werden. Speichern Sie es besser in der Datenbank oder im Cache.