2016-09-13 6 views
0

Djangoのドキュメントによれば hereDjangoはsession.flush()でデータベースセッションエントリを期限切れにしますか?

request.session.flush()

セッションから現在のセッションデータを削除し、セッションクッキーを削除します。 (django.contrib.auth.logout()関数がそれを呼び出します)

ただし、データベーステーブル内のセッションエントリも自動的に期限切れになりますか?

もしそうでなければ、テーブル内で使用できないが期限切れではないセッションが不必要に生成される可能性があるからです。

答えて

1

はい、あります。あなたはsourceを見ればドキュメンテーション文字列が明示的に述べている:

def flush(self): 
    """ 
    Removes the current session data from the database and regenerates the 
    key. 
    """ 
    self.clear() 
    self.delete() 
    self._session_key = None 

言われていることを、期限切れのセッションのビルドアップがあるでしょう。

Djangoは期限切れのセッションの自動消去を提供していません:あなたはclearsessions管理コマンドを使用してそれらをクリアするためにスケジュールされたジョブを設定する必要があります理由です。したがって、期限切れのセッションを定期的にパージするのはあなたの仕事です。 Djangoは、この目的のためにクリーンアップ管理コマンドを提供しています:clearsessions。このコマンドは、毎日のcronジョブなど、定期的に呼び出すことをお勧めします。

+0

ありがとうございました。しかし、ドキュメンテーションからソースコードを見るにはどのようにすればよいか尋ねることができますか?私が見ていないgithubの行へのリンクはありますか、それらを見つけるために手動でリポジトリをブラウズする必要がありますか? – AlanSTACK

+0

私はこれを手動で検索しましたが、ドキュメンテーションに '[source]'リンクが含まれることがあります。例については、[this one](https://docs.djangoproject.com/en/1.10/ref/utils/#module-django.utils.text)を参照してください。 – Selcuk

関連する問題