2

現在、webapp で Session をいじっていますが、開発サーバー (Django に付属の組み込みサーバー) を再起動するたびに、セッションがリセットされないことに気付きました。サーバーを何度も再起動しても引き継がれます。

開発サーバーをリセット/再起動するたびにセッションがフラッシュ/クリーンアウトされるようにするには、どこで設定できますか?

4

2 に答える 2

2

もう 1 つの解決策は、非永続的なセッション バックエンドを使用することです。例えば、

SESSION_ENGINE = 'django.contrib.sessions.backends.cache'

想定: Django 1.0-1.5、デフォルトのキャッシュ バックエンド (LocMem) を使用

signed_cookies バックエンドを使用してブラウザの Cookie をクリアすることもできますが、私は試していません。

なんで?

デフォルトでは、Django はデータベースをセッション バックエンドとして使用します。

SESSION_ENGINE

デフォルト: django.contrib.sessions.backends.db

その結果、開発サーバーがリロードされると、古いセッションがデータベースから復元されます。これは、file および cached_db バックエンドにも当てはまります。

于 2013-01-12T20:06:23.420 に答える
2

実行サーバーファイルを変更する

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/

于 2012-06-20T03:59:21.940 に答える