Globale Variable in Django

Django, Flask, Bottle, WSGI, CGI…
Antworten
Brosche
User
Beiträge: 4
Registriert: Mittwoch 3. August 2016, 10:10

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.
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

@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?
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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?

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Brosche
User
Beiträge: 4
Registriert: Mittwoch 3. August 2016, 10:10

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.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Das hört sich doch so an, das du was cachen möchtest, oder?

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Brosche
User
Beiträge: 4
Registriert: Mittwoch 3. August 2016, 10:10

Ja, es ist ein Teil einer HTML-Seite, der ständig aktualisiert/verändert und nachgeladen wird.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

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.
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

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
Brosche
User
Beiträge: 4
Registriert: Mittwoch 3. August 2016, 10:10

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.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Selbst wenn man irgendwas jede Minute aktualisiert, kann es schon sinnvoll sein dies in einen Cache zu packen.
Antworten