現在、webapp で Session をいじっていますが、開発サーバー (Django に付属の組み込みサーバー) を再起動するたびに、セッションがリセットされないことに気付きました。サーバーを何度も再起動しても引き継がれます。
開発サーバーをリセット/再起動するたびにセッションがフラッシュ/クリーンアウトされるようにするには、どこで設定できますか?
現在、webapp で Session をいじっていますが、開発サーバー (Django に付属の組み込みサーバー) を再起動するたびに、セッションがリセットされないことに気付きました。サーバーを何度も再起動しても引き継がれます。
開発サーバーをリセット/再起動するたびにセッションがフラッシュ/クリーンアウトされるようにするには、どこで設定できますか?
もう 1 つの解決策は、非永続的なセッション バックエンドを使用することです。例えば、
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
想定: Django 1.0-1.5、デフォルトのキャッシュ バックエンド (LocMem) を使用
signed_cookies バックエンドを使用してブラウザの Cookie をクリアすることもできますが、私は試していません。
デフォルトでは、Django はデータベースをセッション バックエンドとして使用します。
デフォルト: django.contrib.sessions.backends.db
その結果、開発サーバーがリロードされると、古いセッションがデータベースから復元されます。これは、file および cached_db バックエンドにも当てはまります。
実行サーバーファイルを変更する
DJANGO_SETTINGS_MODULE="myproj.settings" \
python -c 'from django.contrib.sessions.models import Session; \
Session.objects.all().delete()'
python manage.py runserver
こちらを参照してください Django snippet: clear session table -> http://djangosnippets.org/snippets/48/