Ich fragte mich, ob ich Django-Sitzungsaufrufe für bestimmte Ansichten beseitigen könnte. Wenn ich beispielsweise ein Formular zum Zurücksetzen des Passworts habe, möchte ich nicht, dass ein Anruf bei der Datenbank nach einer Sitzung sucht oder nicht. Vielen Dank!Eliminierung bestimmter Django-Sitzungsaufrufe
Antwort
Sitzungen werden langsam geladen: Wenn Sie die Sitzung während einer Anfrage nicht verwenden, lädt Django sie nicht.
Dazu gehört request.user: Wenn Sie darauf zugreifen, greift es auf die Sitzung zu, um den Benutzer zu finden. (Es lädt träge, auch - wenn Sie nicht auf request.user zugreifen, wird es auch nicht auf die Sitzung zugreifen.)
Also, herauszufinden, was auf die Sitzung zugreifen und es beseitigen - und wenn Sie können 't, zumindest wirst du wissen, warum die Sitzung eingezogen wird.
Wissen Sie, wie Sie nach Sitzungsaufrufen suchen können, ohne etwas wie Django-Logging zu verwenden? Das ist, was ich gerade zum Überprüfen von SQL-Aufrufen verwende und ich weiß nicht, ob der Sitzungsaufruf für die Django-Protokollierung oder für die eigentliche Anwendung ist. Ich habe den Sitzungsaufruf beendet, aber es scheint immer noch abgefragt zu werden. – xtrahotsauce
Wenn es Ihnen nichts ausmacht, die Django-Quelle temporär zu hacken (was ich im Allgemeinen als unvermeidlich empfinde), editieren Sie django.contrib.sessions.backends.base.SessionBase._get_session und lassen Sie sie beim Aufruf von load() ein Backtrace ausgeben. Das wird Ihnen schnell sagen, wer Sitzungsladungen auslöst. –
- 1. Gaußsche Eliminierung in C
- 2. Git Eliminierung von Stringvorkommen
- 3. Gaußsche Eliminierung mit benutzerdefinierten Operatoren
- 4. Implementieren der gemeinsamen Teilausdruck-Eliminierung
- 5. Eliminierung unnötiger Log4j-Setup-Ausgabe
- 6. Eliminierung des mobilen Knackpunkts in BootStrap
- 7. Eliminierung aller Daten über ein bestimmtes Perzentil
- 8. Eliminierung von doppelten Datensätzen in die Datenbank
- 9. R Eliminierung mehrerer Lookups in einem Wörterbuch
- 10. Eliminierung des oberen Bereichs eines horizontalen Menüs
- 11. Eliminierung der 30-Tage-Grenze von Memcached
- 12. Eliminierung von Nulllisten innerhalb einer Liste in Schema
- 13. Rekursive Feature-Eliminierung in zufälliger Gesamtstruktur mit scikit-learn
- 14. Quantifizierer Eliminierung über Bit-Vektoren erzeugt übermäßig komplizierte Ergebnisse
- 15. Directory.GetFiles bestimmter Erweiterung
- 16. Aktualisieren bestimmter numpy Matrixspalten
- 17. Verweigern bestimmter UIViews von
- 18. Extrahieren bestimmter Informationen
- 19. JAR - Extrahieren bestimmter Dateien
- 20. Kopieren bestimmter ausgehender Links
- 21. Verwerfen bestimmter Methoden/Typen
- 22. mark.js Hervorhebung bestimmter Wörter
- 23. Löschen bestimmter Zellen Excel
- 24. Anzeige bestimmter Farben
- 25. SQL Zählen bestimmter Spalten
- 26. Auswählen bestimmter Fertig
- 27. BASH - Löschen bestimmter Zeilen
- 28. Löschen bestimmter Knoten in xml
- 29. Auswählen bestimmter Felder in MongooseJs
- 30. Wurf Artikel in bestimmter Entfernung
Nicht wirklich eine Antwort auf Ihre Frage, aber wenn Sie über die Sitzungsleistung besorgt sind, schneiden Sie den mittleren Mann und verwenden memcached. Dann machen Sie sich nie Sorgen über Anrufe in der Sitzung. http://docs.djangoproject.com/en/dev/topics/http/sessions/#configuring-the-session-engine –
Gibt es einen Nachteil für die Verwendung von Memcached im Gegensatz zur Verwendung der DB für Sitzungen? – xtrahotsauce