Hallo Community,
ich wollte mal fragen ob es möglich ist, eine Middleware nur einmal, bevor die view angezeigt wird, auszuführen?!
Leider ist es immoment so, dass bei jedem request die Middleware ausgeführt wird z.B. beim Laden der CSS Datei , Bilder usw.
Lg
Alex / Berliner
[Django] Middleware
Was verstehst du unter hier unter Middleware? Meinst du das Parsen der URL, die Zuordnung zu einer View und die Verarbeitung dort? So lange du nicht explizit selber eine weitere Verarbeitung aufrufst findet auch keine statt.BerlinerMC hat geschrieben: ich wollte mal fragen ob es möglich ist, eine Middleware nur einmal, bevor die view angezeigt wird, auszuführen?!
Wenn es dir um statische Dateien geht, dann schau dir mal http://docs.djangoproject.com/en/dev/ho ... tic-files/ an.BerlinerMC hat geschrieben: Leider ist es immoment so, dass bei jedem request die Middleware ausgeführt wird z.B. beim Laden der CSS Datei , Bilder usw.
-
- User
- Beiträge: 25
- Registriert: Montag 8. Dezember 2008, 19:32
Naja ich möchte das eine Funktion aufgerufen wird, bevor die Seite angezeigt wird. Ich hatte gehofft das ich es mit Middleware lösen könnte.
Jedoch besteht hier das Problem das die Funktion mehrmal, bei jedem request, aufgerufen wird!
Gibt es andere Möglichkeiten Funktionen aufzurufen, irgendwo an einer Zentralen Stelle?!
Jedoch besteht hier das Problem das die Funktion mehrmal, bei jedem request, aufgerufen wird!
Gibt es andere Möglichkeiten Funktionen aufzurufen, irgendwo an einer Zentralen Stelle?!
- Defnull
- User
- Beiträge: 778
- Registriert: Donnerstag 18. Juni 2009, 22:09
- Wohnort: Göttingen
- Kontaktdaten:
Was willst du denn eigentlich tun?
Bottle: Micro Web Framework + Development Blog
Dafür sind middlewares da…BerlinerMC hat geschrieben:Naja ich möchte das eine Funktion aufgerufen wird, bevor die Seite angezeigt wird. Ich hatte gehofft das ich es mit Middleware lösen könnte.
Nein pro request wird eine Django middleware definitiv nur einmal aufgerufen!Jedoch besteht hier das Problem das die Funktion mehrmal, bei jedem request, aufgerufen wird!
-
- User
- Beiträge: 25
- Registriert: Montag 8. Dezember 2008, 19:32
Also z.B. eine Funktion die Zählt wie oft ein User Seiten aufruft.BerlinerMC hat geschrieben:Naja ich möchte das eine Funktion aufgerufen wird, bevor die Seite angezeigt wird. Ich hatte gehofft das ich es mit Middleware lösen könnte.
Also ein User loggt sich ein und klickt nun auf meiner Homepage rum. Im Hintergrund gibt es einen Zähler und speichert das gezählte ggf. in die DB ein und ich kann im Nachhinein nachvollziehen wie viel Seiten er aufgerufen hat.
Ist nun ein bisschen trivial und man fragt sich bestimmt wozu ich das benötige! Eine derartige Funktion benötige ich auch nicht, aber so ungefähr.
Aber eine derartige Funktion nun in jeder "View" einzufügen wäre ein bisschen umständlich?!
Daher hoffte ich das ich sowas mit Middleware zentral lösen könnte.
So? Was ist beispielsweise mit Bildern, die dynamisch erzeugt werden (e.g. capchas)?
Nun du kannst jetzt noch mit 100 Beispielen kommen und ich werde dir immer sagen, was du tun musst damit eine Middleware dennoch passt, also lassen wir das :þ Abgesehen davon könnte man natürlich decorators auch verwenden, wird allerdings unlustig jeden View zu dekorieren…lunar hat geschrieben:So? Was ist beispielsweise mit Bildern, die dynamisch erzeugt werden (e.g. capchas)?