Frage Stoppen Sie Django, sich nach Quellenänderungen abzumelden


Ich arbeite an einem Django-Projekt und seit ein paar Tagen protokolliert mich Django, nachdem ich eine Quelldatei geändert habe.

Das Ablaufdatum in den Cookies und in der Datenbank zeigt, dass noch 1 Monat übrig ist.

Auch nach der Änderung ist der Sitzungscookie derselbe wie in der Datenbank, aber ich muss mich erneut anmelden. und nach der Anmeldung ändern sich die SessionIDs (Datenbank und Browser).

Ich benutze Django 1.8.5

bearbeiten: einige sitzungsbezogene Einstellungen:

SESSION_EXPIRE_AT_BROWSER_CLOSE        False
SESSION_COOKIE_HTTPONLY                True
SESSION_COOKIE_DOMAIN                  None
SESSION_SAVE_EVERY_REQUEST             False
SESSION_COOKIE_SECURE                  False

edit2:

Nur um ein bisschen klarer zu sein: Nach dem Ändern einiger Quelldateien (Python-Dateien, Vorlagen funktionieren einwandfrei) wird der Server neu geladen (wenn ich --noreload benutze, muss ich es manuell machen, um die Änderungen zu erhalten), danach sind alle abgemeldet.

edit3:

CACHES              {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}
SESSION_ENGINE      'django.contrib.sessions.backends.db'

5
2017-10-29 11:56


Ursprung


Antworten:


Django hat eine SESSION_ENGINE  Einstellung, die steuert, wie die Sitzungsinformationen auf dem Server gespeichert werden. Eine der Optionen ist django.contrib.sessions.backends.cache, die Sitzungsinformationen nur im Cache-Speicher speichert.

Jetzt gibt es ein bestimmtes Cache-Backend - django.core.cache.backends.locmem.LocMemCache -, die Informationen im lokalen Pythonspeicher speichert (für weitere Informationen siehe CACHES). Dieses Cache-Backend ist eine typische Entwicklungsoption und wird natürlich jedes Mal zurückgesetzt, wenn der Server neu geladen wird.

Die Verwendung dieser beiden Einstellungen würde die von Ihnen beschriebene Situation perfekt erklären. Hoffe das hilft!


1
2017-11-18 21:17