まず、国家遺跡
1. HTTPプロトコルはステートレスです:新しい要求が毎回ある通信前の状態を覚えていないだろう要求
2.クライアントに関連するデータまたはサーバを格納するセッション:通信セッションは、クライアントとサーバーを保持する実装状態であります
3.ストレージクッキー、セッションを含む、セッションは、一般的にセッションオブジェクトを指し
4.使用クッキー、クライアントに保存されているすべてのデータは、機密情報を保存しないように注意してください
5.使用sesisonの実施例は、サーバー側で、クライアントは、すべてのデータは、クッキーの店SESSION_IDに保存されています
6.状態の目的が達成することができ、現在、依頼者、ページ間でのデータアクセスを一定期間にわたって要求者の状態を追跡されます
注:別のリクエスタ間でこのデータを共有していない、要求に対応
使用シナリオ:ログイン状態遺跡
第二に、セッションを有効にするには
1.設定
2つの設定があり、デフォルトでは有効になっているsettings.pyファイル、セッションのために特別です。
INSTALLED_APPS = [
'django.contrib.admin'、
'django.contrib.auth'、
'django.contrib.contenttypes'、'django.contrib.sessions'、
'django.contrib.messages'、
'django.contrib.staticfiles' 、
'一般的な'
]
ミドルウェア= [
'django.middleware.security.SecurityMiddleware'、
'django.contrib.sessions.middleware.SessionMiddleware' 、
'django.middleware.common.CommonMiddleware'、
#'django.middleware.csrf.CsrfViewMiddleware'、
「django.contrib .auth.middleware.AuthenticationMiddleware」、
'django.contrib.messages.middleware.MessageMiddleware'、
'django.middleware.clickjacking.XFrameOptionsMiddleware'
]
INSTALLED_APP移行はDjangoのセッションに保持されているデータテーブルdjango_sessionを、生成された後に移動した後、対応するスプレッドシートファイル、データ記憶用アプリケーション、django.contrib.sessionsが生成され、登録されたキーアプリケーション(私は、Djangoのセッションパーシスタンス機能を使用したい、このデータシートを持っている必要があります)。
2.セッションを使用します
セッションを有効にした後、それぞれのHttpRequestオブジェクトは辞書ライクオブジェクトであるセッション属性を、持っています
(キー、デフォルト=なし)を取得:に従い、セッションキーの値を取得します。
フラッシュ():現在のセッションデータを削除し、セッションクッキーを削除
ユーザーの例としては、ユーザーがノートを上陸させた場合、このフィールドにセッション名を判断する、ユーザーがログオンページをレンダリングするテンプレートにユーザー名が:(通過したときに記録され、そうでない場合は、ページをレンダリングするユーザー)がログインしていません
DEF指数(要求):
ユーザ名= request.session.get( "ユーザ名"、なし)
リターンレンダリング(要求、 'index.htmlを'、コンテキスト= { "ユーザ名":ユーザー名})
1.両方の読みと辞書のようなオブジェクトの現在のセッションを表し書きます
2.情報ますrequest.sessionは、ログイン時にログインを設定します
3.メインページに値セットを取得し、その後、テンプレートに渡さ
データセッションの終了をクリアする4. request.session.flush()
3.セッションの有効期限
set_expiry(値):設定されたセッションのタイムアウト
指定されていない場合は、2週間経過後(ジャンゴデフォルト15日)
値が整数である場合、セッションは活性値なし秒で期限切れになります
値ははtimedeltaオブジェクトである場合、このセッションは、指定された日付/時刻が現在時刻に期限切れに追加されます
値が0の場合、ユーザーのブラウザが閉じているときは、クッキーのユーザセッションが期限切れになります
値がNoneの場合、セッションが期限切れになることはありません
4.セッションの有効期限のためのいくつかのデフォルト設定
#かどうかは、ブラウザを閉じデフォルトはFalseで、セッションの有効期限が切れている
SESSION_EXPIRE_AT_BROWSER_CLOSE = Falseで
、デフォルトが変更され、保存した後にのみ、各要求するかどうか#セッションの保存
SESSION_SAVE_EVERY_REQUEST = Falseの
クッキーの有効期限の#セッションを、デフォルトは2週間です
= 1209600 SESSION_COOKIE_AGE