Seite 1 von 1
Globale Variable in Django
Verfasst: Dienstag 6. September 2016, 10:09
von Brosche
Ich habe eine Anfängerfrage zu Django: Gibt es eine Möglichkeit, globale Variablen zu definieren, die ähnlich wie die Session-Variablen sämtlichen Modulen sowohl lesend als auch schreibend zur Verfügung stehen und das aber unabhängig von den Sessions wirklich global.
Re: Globale Variable in Django
Verfasst: Dienstag 6. September 2016, 10:21
von Sirius3
@Brosche: globale Variablen sind nie eine gute Idee. Bei Django gibt es ja dafür Datenbanktabellen, um Daten über eine Anfrage hinaus speichern zu können. Was willst Du konkret tun?
Re: Globale Variable in Django
Verfasst: Dienstag 6. September 2016, 10:25
von jens
Neben der Datenbank könnte man noch Informationen im Cache ablegen. Wobei das halt nicht zuverlässig ist.
Aber welches Problem soll gelöst werden?
Re: Globale Variable in Django
Verfasst: Dienstag 6. September 2016, 10:43
von Brosche
Ich möchte ein Ergebnis, das aus vielen Datenbankabfragen erstellt und dann mit HTML aufbereitet wird, für die weitere Abfragen abspeichern. Das Ergebnis ist zu groß ,um es in einer Varchar-Spalte abzulegen, daher kommt leider auch ein "In Memory Table" nicht in Frage. Weshalb sind globale Variablen so verpönt? Es gibt durchaus sinnvolle Anwendungen dafür.
Re: Globale Variable in Django
Verfasst: Dienstag 6. September 2016, 10:44
von jens
Das hört sich doch so an, das du was cachen möchtest, oder?
Re: Globale Variable in Django
Verfasst: Dienstag 6. September 2016, 10:49
von Brosche
Ja, es ist ein Teil einer HTML-Seite, der ständig aktualisiert/verändert und nachgeladen wird.
Re: Globale Variable in Django
Verfasst: Dienstag 6. September 2016, 11:42
von DasIch
Brosche hat geschrieben:Weshalb sind globale Variablen so verpönt? Es gibt durchaus sinnvolle Anwendungen dafür.
Globale Variablen machen es sehr schwer Code zu testen und zu verstehen, außerdem führen sie zu Problemen bei Parallelisierung und machen es dchwer bis unmöglich eine Anwendung horizontal zu skalieren.
Mit anderen Worten es gibt keine sinnvolle Anwendung von globalen Variablen im Kontext von Web Anwendungen. Verwende einen Cache wie Memcache oder einen Key/Value Store wie z.b. Redis.
Re: Globale Variable in Django
Verfasst: Dienstag 6. September 2016, 18:12
von noisefloor
Hallo,
Ja, es ist ein Teil einer HTML-Seite, der ständig aktualisiert/verändert und nachgeladen wird.
? - was denn jetzt? Wir das ständig aktualisiert - dann machen Caching keine Sinn. Wird das 1x pro Tag oder so aktualisiert? Dann kannst du Cachen oder generiest 1x pro Tag eine statische Seite, die Django dann ausliefert.
Gruß, noisefloor
Re: Globale Variable in Django
Verfasst: Dienstag 6. September 2016, 19:53
von Brosche
Doch, das Caching ist sinnvoll, auch wenn die Seite oft aktualisiert werden muss.
Ihr habt mir aber bereits meine Fragen beantwortet, ich wollte das nur mal grundsätzlich mit den globalen Variablen wissen. Ich werde nun das Caching einsetzen und bedanke mich für Eure Beiträge.
Re: Globale Variable in Django
Verfasst: Dienstag 6. September 2016, 20:27
von DasIch
Selbst wenn man irgendwas jede Minute aktualisiert, kann es schon sinnvoll sein dies in einen Cache zu packen.